タグ

2009年11月18日のブックマーク (1件)

  • 正規表現で任意文字列の否定 - mayokara memo

    Perl正規表現雑技 ある文字列とある文字列を含むものにマッチする正規表現 (?=.*foo)(?=.*bar) (?=.*foo)(?=.*bar)(?=.*hoge) ある文字列を含まないものにマッチする正規表現 (?:(?!foo).)* Proxomitronでいうところの(^abc)に相当するやつ。 なるほど、否定先読みが使えるのね…… これは知ってると知らないとで差がつきそうだ。 ■ "abc"を含む行を抽出 $text =~ s/^((?!abc).)*?\n//gm; ■ "abc"で始まる行を抽出 $text =~ s/^(?!abc).*?\n//gm; ■ 素数判定 後方参照のある正規表現の能力 - まめめも 正確には、文字列の長さが素数かどうかを判定できます。2 文字以上のマッチが 2 回以上出現するかどうかを見ます。後方参照がポイント。 p (2..30).sel