タグ

matchとregexpに関するishideoのブックマーク (2)

  • 正規表現の最短マッチに関するVimとPerlの違い - the code to rock

    以前にも近い話題でひとつ書いたのですが、 note103.hateblo.jp それと重なりながらもちょっとズレるトピックでけっこうハマったので、おもに未来の自分用にまとめておきます。 例題 以下の文字列に対して、最初の apple だけマッチさせるパターンを考えてください。 appleorangeapple という問題があったとき、「最初の apple だけ」ということは、いわゆる「最短マッチ(非欲張り型)」のパターンを考えることになりますから、Perl だとこんな感じで作れます。 Perl my $foo = 'appleorangeapple'; say "最短マッチ: $1" if $foo =~ /^(.*?e)/; say "最長マッチ: $1" if $foo =~ /^(.*e)/; 実行。 最短マッチ: apple 最長マッチ: appleorangeapple パターン

    正規表現の最短マッチに関するVimとPerlの違い - the code to rock
  • おそるべし正規表現 「ある文字列を含まない行」: 大阪のオッサンのダラダラ日記

    日、会社のプロキシサーバの予備機をセットアップしたのです。 番機と同じ設定にすべく作業をしていたのですが、 なにかがおかしい・・・ プロキシサーバには、squidを使っているのですが、 設定ファイルである”squid.conf”はなんと4000行以上もあるのです。 どうやら、同じような記述を何回もしていたり、矛盾する記述をしているようなのです。 で、「どこがおかしいのかいな?」と探してみたもののわけがわからん・・・ コメント行以外を見ていくのですが、4000行以上あるのはちょっと・・・ というわけで、コメント行以外を”grep”で抽出してみることに。 ”squid.conf”のコメント行は、#で始まっているので#を含まない行をみつければOKのはず。 つまり、「ある文字列を含まない行」を探すのです。 というわけで、正規表現を考えたもののなかなかうまくいかず。 悩んだ時の、ネット頼みをして

  • 1