1

{2,5} の 5 の意味は何ですか? 先行するトークンの 2 から 5 に一致します。これは遅延一致であり、次のトークンを満たす前にできるだけ少ない文字と一致します。

例を挙げabcccccabcccましたが、{2,5} に 5 が使用されていませんか? 2 つの連続する a のみに一致します。

2番目のパラメーターが何らかの役割を果たす例を誰かが挙げることができますか? (この場合は 5 {2,5}?)

abc{2,5} is greedy match 

First match: abccccc
Second match: abccc

abc{2,5}? is lazy match
First match: abcc
Second match: abcc

参照

4

3 に答える 3

2

この例を見る >>

ストリング:123abcccccabc

正規表現:/123(abc{2,5}?)abc/

試合の背後にも一致する必要があるためabccccc、グループ #1 で一致します。abc

とった?

于 2012-07-21T15:15:55.750 に答える
2

あなたの正規表現が"(.{0,10}?)". これは、最大 10 文字の引用符付き文字列に一致します。例えば

""
"foo"
"1234567890"

遅延により、引用符が文字列内に存在できないことが保証されます。たとえば、引用符で囲まれた 2 つの部分を含む文字列と照合した場合、正規表現は最初の部分のみに一致します。

// "(.{0,10}?)"
"foo" "bar"
 ^^^

lazy 修飾子を省略すると、両方に一致し、誤っfoo" "barて文字列の内容としてキャプチャされます。

// "(.{0,10})"
"foo" "bar"
 ^^^^^^^^^
于 2012-07-21T15:17:34.170 に答える
0

はいといいえ。その意味は、それに続くものによって異なります。たとえば、abc{2,5}?cとは異なりabc{2,5}?aます。

于 2012-07-21T15:16:20.200 に答える