2012-05-18 4 views
5

私は正規表現のチートシートを参照しています。 それはungreedy +が何を示すのか?3,4,5 + ungreedyUngreedyの正規表現

を意味

{3,5}

{3,5}?を意味言いますか

+0

あなたは[このチートシート](http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/)について話していますか?それは、多くの異なる味から描かれた特徴のマッシュアップであることに注意してください。あなたの好みの中ですべてが機能することを期待しないでください。また、負のlookbehindの代替構文として '(?!= ...)'を挙げていますが、これは単なる間違っています。私が慣れ親しんでいるすべてのフレーバーは、lookbehindをまったくサポートしていれば '(?<!...)'を使用します。 –

答えて

9

量子化器{3,5}?は、3回のオカレンスを最初に一致させてから、残りの式が一致するかどうかを調べることを意味します。式の残りの部分が失敗した場合は、それを取り戻して4を試し、最後に5を試します。

貪欲型{3,5}は、反対の順序で試合を試行します。

グリーディネスは、文字列が一致するかどうかには影響しません。エンジンが検索を実行する順序と、キャプチャグループがある場合はキャプチャの内容にのみ影響します。

ここにその違いを示す例があります。文字列がaaaaabcであるとします。

  • (a{3,5})(\w*)aaaaabcをキャプチャします。 (rubular)
  • (a{3,5}?)(\w*)は、aaaaabcをキャプチャします。 (rubular)
+0

ありがとうございます。私は部分的にあなたが意味することを理解しました。例を挙げて説明できますか? – Ank

+0

@Ankur:例を追加しました。 –

+0

あなたの例をありがとう.. – Ank