10

"\\d+"Java では、との違いは何"\\d++"ですか? ++ が所有量指定子であることは知っていますが、数値文字列の一致の違いは何ですか? "\\d+"と一致するが一致しない文字列は"\\d++"? 所有量指定子は、量指定子".*"だけで意味があるようです。本当ですか?

4

2 に答える 2

12

全体的な一致にいくらかのバックオフが必要な場合でも、所有量指定子はバックオフしません。

したがって、たとえば、正規表現の最後の記号と一致するために必要な数字を含むすべての数字と一致する\d++0ため、正規表現はどの入力とも一致しません。\d++0

于 2013-04-24T04:45:12.017 に答える
3

\d+ 意味:
\d数字 (0 ~ 9 の範囲の文字) を+意味し、1 回以上を意味します。つまり、\d+1桁以上です。

\d++数量詞 からの平均

これは所有量指定子と呼ばれ、常に入力文字列全体を消費し、一致を 1 回 (そして 1 回だけ) 試行します。貪欲な量指定子とは異なり、所有格の量指定子は、たとえそうすることで全体的な一致が成功する可能性があるとしても、決して後退しません。

于 2013-04-24T04:42:55.673 に答える