27

正規表現に(\w+)?との間に違いはありますか?(\w*)

同じようですね。

4

1 に答える 1

34

(\w+)?両方とも(\w*)同じ (0..+inf ワード文字) に一致します。

ただし、わずかな違いがあります。

最初のケースで、正規表現のこの部分が一致する""場合、キャプチャ グループは存在しません。2 番目のケースでは、空です。一部の言語では、前者は a として明示されnull、後者は常に である必要があります""

たとえば、Javascript では、

/(\w*)/.exec("")  // ["", ""]
/(\w+)?/.exec("") // ["", undefined]

PHP ( preg_match) では、前者の場合、対応するキーは単に一致配列に存在しません: http://3v4l.org/DB6p3#v430

于 2013-01-17T06:37:31.140 に答える