タグ

正規表現に関するwkubotaのブックマーク (3)

  • 遺伝的アルゴリズムで遅い正規表現を検出する - にょきにょきブログ

    ある正規表現に様々な文字列をわせてマッチするかどうか判定することは大変頻出するコードです。 稀に、わせる文字列のパターンによっては正規表現のマッチに猛烈に時間を消費する場合があります。 僕も少し前に遭遇し、下記に公開しています。 developer.cybozu.co.jp この時は、(\\w|_){1,64}@ という正規表現があって、____________________ のようにアンダースコアを複数含む文字列のマッチに大変時間がかかるという問題でした。 この、「対象文字列によってはマッチに時間がかかることがある問題」を、遺伝的アルゴリズムを用いて解決できないかチャレンジしてみましょう。 考え方としては、 ランダムな文字列を 10000 個ほど生成し、 それぞれ正規表現にマッチするか判定させ、 時間がかかった順にソートし、 上位を交配させて世代を繰り返せば、 遅い文字列が抽出でき

    遺伝的アルゴリズムで遅い正規表現を検出する - にょきにょきブログ
    wkubota
    wkubota 2015/10/19
    こういう問題に遺伝的アルゴリズムを使うのか…。なるほどなー
  • 正規表現を解析して可視化してくれるサイトが凄すぎる件

    ある正規表現に対して、特定の文字列がマッチするかどうかをチェックするツールやサイトは沢山ありますが、正規表現そのものが何を意味しているのか、どんな文字列を期待しているのかを解析・解読・説明してくれるツールやサイトってなかなか見ない気がします。 他人の書いた正規表現を見て、「ん?」ってなったことはありませんか? 例えばこれ。 1 ^[a-zA-Z0-9-_.]@([a-zA-Z0-9_-]+\.)+[a-zA-Z]{2,4}$ これくらいなら分かりますが、複雑になってくるとつらい… いつかはマスターしたいけど…今は楽したい。 そう思ってググってみると…ありました! それがこちら。 Regexper http://www.regexper.com/ 正規表現を入力して Display をクリックすると、その正規表現が表す内容を図にして表示してくれます。 例えば先程の正規表現は、当記事の一番上の

    正規表現を解析して可視化してくれるサイトが凄すぎる件
    wkubota
    wkubota 2014/11/18
    正規表現、他人のあまりがんばって読む機会無いんだよね。
  • 【レビュー】grep(1)の正規表現をもっと使えるようになる7つのサンプル | エンタープライズ | マイコミジャーナル

    Guides, HowTos and Tips for Technology Geeks - The Geek Stuff LinuxやFreeBSDなどのUnix系OSを使う場合に必須になるコマンドのひとつにgrep(1)がある。grep(1)は指定した文字列をファイルや標準入力から抜き出したり、またその逆の処理を行うなどの目的で利用されるコマンド。特定のキーワードを指定してファイルを特定するために利用されるほか、コマンド出力を加工したり、データを加工したりといった用途で使われている。 grep(1)はキーワードの指定に正規表現を指定できる。正規表現はgrep(1)の活用範囲をきわめて広くする重要な機能であり、grep(1)の基的な使い方をマスターした後にぜひ習得しておきたい機能といえる。The Geek StuffのAdvanced Regular Expressions in Gr

    wkubota
    wkubota 2011/01/28
    あとで読む
  • 1