0

正規表現について非常に簡単な質問があります。

ソース文字列: 名前:Bob Age:20

パターン 1:[\d]+

パターン 2:([\d])+

パターン 1 が一致するのはなぜですか。"20"一方、パターン 2 は単に に一致するの"0"ですか?

量指定子 + が貪欲であることはわかっているので、1 つ以上に一致しますが、文字クラスを括弧で囲むと、最後の文字にしか一致しないのはなぜですか?

4

2 に答える 2

2

どちらにもマッチします。グローバル マッチは数字ですが、キャプチャされたマッチは括弧の間、つまり[\d](これは\d) です。

正確な動作は、使用している関数/言語によって異なります。「20」(グローバル マッチ) または「0」(キャプチャされたグループ) が返される場合があります。すべての数字をキャプチャする場合は、(\d+)(グループ内の +) を使用します。

于 2013-10-14T15:37:12.667 に答える