タグ

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

  • vim正規表現リファレンス - Qiita

    このエントリの内容は pattern - Vim語ドキュメント を見れば全て書いてある。 個人的によく見直すものを自分なりに整理してまとめなおしたものです。 メモ vimの正規表現には \ でエスケープする必要な文字がオプションによって変わる。これには magic / nomagic / very magic / very nomagic と4つのモードがあるけど、vim では magic モードを基とします。 繰返し制御系(量指定子) a* は0回以上の a の繰り返しにマッチする。(最長一致) a+ は単に a+ という文字列にマッチする。 a\+ は1回以上の a の繰り返しにマッチする。(最長一致) a? は単に a? という文字列にマッチする。 a\? は0または1個の a にマッチする。 a\= は0または1個の a にマッチする。(\? と基同じだが \? は後方検索

    vim正規表現リファレンス - Qiita
  • 正規表現の最短マッチに関する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
  • 1