正規表現に(\w+)?
との間に違いはありますか?(\w*)
同じようですね。
(\w+)?
両方とも(\w*)
同じ (0..+inf ワード文字) に一致します。
ただし、わずかな違いがあります。
最初のケースで、正規表現のこの部分が一致する""
場合、キャプチャ グループは存在しません。2 番目のケースでは、空です。一部の言語では、前者は a として明示されnull
、後者は常に である必要があります""
。
たとえば、Javascript では、
/(\w*)/.exec("") // ["", ""]
/(\w+)?/.exec("") // ["", undefined]
PHP ( preg_match
) では、前者の場合、対応するキーは単に一致配列に存在しません: http://3v4l.org/DB6p3#v430