0

次のようなパターンがあるとします。

@[a-z]+\s[\d] 

次のようなものがあると便利ですか?

(@[a-z]+\s[\d])

どんな状況でも?それらの間に違いはありますか?どうして?

4

2 に答える 2

1

()、データのキャプチャに使用されます。"My name is John"キャプチャせずに一致させようとすると、次のようになります。

/My name is [A-Z][a-z]+/

その場合、結果は単純に次の文字列になります。

("My name is John")

結果とは別に名前を取得したい場合は、次の()ように使用できます。

/My name is ([A-Z][a-z]+)/

これにより、一致全体が返され (常に一致全体が最初の結果項目として返されるのが規則です)、キャプチャされた名前も次のように返されます。

("My name is John", "John")

姓名を取得したい場合は、次の"My name is John Doe"ようにします。

/My name is ([A-Z][a-z]+) ([A-Z][a-z]+)/

結果:

("My name is John Doe", "John", "Doe")

ですから、あなたの質問に答えるために、実際には 2 つの表現に違いはありません。1 つ目は文字列に一致するだけですが、2 つ目は文字列に一致してキャプチャします (この場合、基本的に 2 つの同一の結果が得られます)。

于 2013-01-25T01:47:12.573 に答える
-3

通常、二重引用符で囲みます...

于 2013-01-24T20:36:28.467 に答える