正規表現の"正規"って何 ある時ふと思いました。 「正規表現の"正規"って何だろう?」 「何を根拠に"正規"を名乗っているのか?」 と。 「誰かが『これが正規の表現だ』と言ったはず」で、 「それは周りにどうやって"正規"だと認められたのだろう」 ということが気になったので調べてみました。 "正規表現"という名前でなくて、"ジャックさんの表現"とか"記号ごちゃごちゃ表現"だったらこんな疑問も持たなかったのですけど。数学における"正規"とは 一般に"正規"というと、"正規品"や"正規の手順"といったように"本物の(genuine)"や"公式な(official)"といった意味がありますが、数学の"正規"はちょっと違います。数学で"正規"(および"正則"、英語では"regular"または"non-singular")は、ある概念に強い制限をかけたもの、という意味です。強い制限をかけたものは取

エンジニアの澤田です。 この連載では、マネーフォワード社内のRuby (onRails)コードで気になった箇所の問題点やそこから発展して関連事項を議論しています。 前回の『マネーフォワード社内PRに見られるRubyの書き方について(2)』ではハッシュの生成を扱いました。 概念的な話で始まり、また長かったので、読んだ方は少し疲れたかも知れません。 今回は内容の特性により、用例を並べて手短に問題点を指摘して、文字列(String)の生成や検証を考察します。 題材とするコードは、マネーフォワード社内のGitHubプルリクエストで実際に見かけたコードから問題点に関係する部分を抽出し、抽象化したもので、見かけたものそのままではありません。 社内のコードに限らず、文字列に関わるRubyコードで問題のあるものの多くは、必要もないのに正規表現を使ってやろうとしていたり、特定のメソッドに固執してそれを乱用
こんにちは、Webアプリケーションエンジニアのid:nanto_viです。みなさんHTMLのフォーム検証機能は使っていますか? 近年は各Webブラウザの対応も進み、お手軽にフォームの利便性を高められるようになっています。 そんなフォーム検証機能のひとつがinput要素のpattern属性です。pattern属性の値にJavaScriptの正規表現パターンを指定することで、ユーザーの入力が意図しないものであった場合、フォーム送信ができなくなります。下図は5桁の数字の入力が求められるところに3桁しか入力せずフォーム送信しようとしたところです。ブラウザに組み込みのエラー表示が出現し、またそのメッセージにtitle属性の値が使われていることを確認できるでしょう。(pattern属性を指定する際には、title属性に書式の説明を記述することが推奨されています。) <input type="text"

Perl は正規表現とか " ではさまれた文字列の中にある変数とか配列を展開してくれるんですが、これは明らかに正規表現の文字クラス ([abc] とか書くヤツ) とブツかるわけです。 以下のコードは @a に 0-999 まで "x" っていう変数をつっこんでから s/$a[...]/y/; 的なことを実行して、 $_ に入ってる x を y に変えようとするコードをいくつか。 #!/usr/bin/envperl for ($i=0; $i < 999; $i++) { $a[$i] = "x"; } $_ = "x"; s/$a[12]/y/; print "12: $_\n"; $_ = "x"; s/$a[123]/y/; print "123: $_\n"; $_ = "x"; s/$a[-2]/y/; print "-2: $_\n"; $_ = "x"; s/$a[-22]
You can't parse [X]HTML with regex. BecauseHTML can't be parsed by regex. Regex is not a tool that can be used to correctly parseHTML. As I have answered inHTML-and-regex questions here so many times before, the use of regex will not allow you to consumeHTML. Regular expressions are a tool that is insufficiently sophisticated to understand the constructsemployed byHTML.HTML is not a regular
PyConJP2014発表資料。 ・正規表現リテラルは、**あれば便利だけどなくても困らない**(ライブラリでカバーできる)ことを説明する。 ・Pythonの正規表現が抱える問題点とその解決案を紹介する。
問題Vim の正規表現はとても豊富で、ベーシックなものからアドバンスドなものまでかなりの道具が揃っています。 これを駆使すればありとあらゆる……は言い過ぎですが、 世の中のテキスト処理の九分九厘を快適に行うことができます。 ただ、あまりにも数が多いので、一体どこから覚えていけばいいのか困りますし、 :help に記載されているものの中には今後の人生で活用する機会があるかどうか分からないものもあります。 手っ取り早く正規表現力を高めて生産性を向上するには一先ずどれを覚えれば良いのでしょうか。 解答 まずは\zsと\zeを覚えましょう。 この2つは正規表現のマッチの開始位置/終了位置を指定することができます。 これだけでは何のことやらさっぱりですが、以下のように応用することができます: 「foobar」の「foo」を指定 foo\zebar で表現できます(Perl 語で言うところの foo

Oh! lady! A-1 dollar B-2 dollars 淫ら~♪ No, on onn..... ~10$ by SMAP~ はい、スタートのネタ歌詞を検索する為に「smap」検索しようとして無意識に「cmap」を検索していたひらくんです。そう今日はダラーダラー、正規表現で文末を表す位置指定子 $ 君の動きを再確認したお話。 先日こんなソースを拝見しました。 $line = "ABCDEFG\n"; $line =~ s/\n$//; print $line . "TEST\n"; $line = "ABCDEFG\n"; $line =~ s/(\n|.)$//; print $line . "TEST\n"; こいつの実行結果はこうなります。 ABCDEFGTEST ABCDEF TEST 最初の正規表現「$line =~ s/\n$//;」は行末の改行文字を削除する処理です
正規表現と構文図について解説します。オートマトンについても詳しく述べます。オートマトン・スゴロクで遊びましょう! 世間でよく知られている/使われている概念・方法にはこだわらず、僕(檜山)の感覚で一番わかりやすいと思われる筋書きと用語法/図式法を使って説明します。この記事に目を通して“感じ”が掴めたら、形式言語理論の教科書を読み始めることが出来るでしょう。 [追記]この記事の内容に対する具体例は、「正規表現とオートマトン:なんだ簡単じゃん、JavaScriptによる実装」にあります。[/追記] 内容: 正規表現 正規表現の例 構文図 基本記号 連接 選択 省略可能 繰り返し ストレートワイヤーによるレイアウト調整 有限状態オートマトン 有限状態オートマトンの実行 バックトラックと先読み スゴロクとオートマトン コマをたくさん使うスゴロクと並列処理 非決定性オートマトンと決定性オートマトン 正

正規表現の概要 正規表現は、Perlの中で最も重宝する機能のひとつです。正規表現にはテキスト処理のための様々な機能があり、文字列の中から特定のパターンを見つけ出したり、置換したりすることができます。 正規表現の基本的な使用方法 たとえば、$strという変数に格納したデータの中から、「A」で始まって途中は何があるかわからないが最後が「E」という文字列を探したい場合、次のように記述することで、条件にマッチする文字列を見つけることができます。 $str =~ /A.*E/; 上記では、ドット( . )が改行以外の1文字を表し、アスタリスク( * )がその任意の文字の0回以上の繰り返しを意味します。このように、正規表現において特殊な働きを持った文字を正規表現演算子、またはメタ文字と呼びます。また、=~ はパターン結合演算子と呼ばれ、「左辺の値から右辺の値を検索する」という意味があります。 正規表現

1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く