0

とJava の例の違いX?を教えてください。、、はです。X?+X??X?X?+X??java.util.regex.Pattern

3つのパターンすべてについて、同じ説明をしました(X、1回またはまったくない)参照http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

インターネットで良い例を見つけることができません

注: 今日の朝、私はここで質問の一部をしました:パターン X の違いは何ですか? と X? 、更新された投稿があるので、もう一度投稿します

4

3 に答える 3

3

これは私がそれを考えるのが好きな方法です -

X??   Negative bias, 0 or 1 time - preference to 0 if possible

X?    Neutral bias,  0 or 1 time

X?+   Positive bias, 0 or 1 time - preference to 1 if possible,
      and if 1 won't give it up (backtrack)
于 2013-09-12T17:23:54.317 に答える
1

違いを確認するには、より複雑なパターンが必要です。

  • 貪欲な量指定子は、最初に可能な限り一致します (ただし、バックトラックします)。

  • 気が進まない、または「貪欲でない」量指定子は、最初は可能な限り一致しません。

  • 所有量指定子は貪欲な量指定子と同じですが、バックトラックしません。

キャプチャ グループを使用して、何が起こっているかを確認します。

(b?)(b+)(b??)(b+)、などのパターンを(b?+)(b+)bとで試してみてくださいbb

A) 一致する場合、および B) 一致する場合、グループは何ですか? を出力してください。

以下は私が期待するものですが、テストしませんでした:

貪欲: それは空の場合に一致しb、最初の場合 (バックトラックによる!)、bb2 番目の場合に一致する必要があります。

, `b` in the first case,気が進まない: 2 番目のに一致する必要がbbあります。最初のグループは実際に何にも一致しないため、このパターンは意味がありません。

所有格: 最初の文字列 (2 番目のグループにはもうb残っておらず、バックトラックしない) とb2b番目の文字列の , (バックトラックは必要ありません) には一致しないはずです。

于 2013-09-12T17:18:51.253 に答える