22

正如标题所说,正则表达式模式是否(x|y)*与相同的字符串匹配[xy]*

4

2 回答 2

34

是的,它们匹配完全相同的字符串集。

它们不是等价的。 (x|y)*设置反向引用[xy]*没有。

因此(?:x|y)*[xy]*在行为上是等效的,因为两者都没有设置反向引用。

于 2013-02-25T03:15:35.037 回答
13

它接近等效,但第一种形式从由它分隔的组中捕获,当匹配时可以使用(对于第一个)进行检索。( )$1regex

如果要避免捕获,请使用

(?:re)

re正则表达式在哪里。

笔记

这仅在x并且y完全是xand时才有效y,如果它们是一般的正则表达式则无效

回溯

于 2013-02-25T03:15:12.890 回答