标签: regex perl
正如标题所说,正则表达式模式(x|y)*是否与[xy]*匹配相同的字符串?
(x|y)*
[xy]*
答案 0 :(得分:34)
是的,它们匹配完全相同的字符串集。
它们并不等同。 (x|y)*设置backreference,[xy]*不设置。
因此,(?:x|y)*和[xy]*在行为上是等效的,因为它们都没有设置反向引用。
(?:x|y)*
答案 1 :(得分:13)
它接近等效,但第一个表单从( )分隔的组进行捕获,可以使用$1检索(对于第一个)regex匹配时。
( )
$1
regex
如果您想避免捕获,请使用
(?:re)
re是正则表达式。
re
这只适用于x和y完全是x和y的情况,而不是它们是一般的正则表达式
x
y
请参阅Backtracking