正規表現

ある文字列を含まないものにマッチする正規表現

(?!.*foo.*).*bar.* とすれば、fooを含まないけどbarを含む文字列が取れる。 下記を参考にした。 (?:(?!foo).)* ある文字列を含まないものにマッチする正規表現 - Perl正規表現雑技

Perlベストプラクティス 2

正規表現は常にオプションxmsをつける。 $string =~ m{ ^.*abc.*$ # abcを含む行 }xms; ということ。 /x パターン中の空白文字*1と#から改行までを無視する。半角スペースや#自身をパターンに含めたいときはエスケープするか[]でキャラクタクラスにする。つ…

貪欲でない正規表現

基本的に正規表現は貪欲(greedy)でマッチしうる最大の文字列にマッチする。 たとえば、"I like an apple."という文字列に対して、/l.* /という正規表現は"like an "という文字列にマッチする。 逆に最小の文字列にマッチする方法を知らなくて、"like "にマ…