可选的群组表达

时间:2015-05-27 03:24:47

标签: php regex preg-replace

今天我在工作中使用正则表达式,在一些实验中,我注意到编译了(\w|)这样的正则表达式。这似乎是一个可选组,但在线查看并没有产生任何结果。

是否有任何实际使用的组合匹配的东西,但否则可以匹配任何东西?它和(\w|.*)之间有什么区别?感谢。

1 个答案:

答案 0 :(得分:2)

(\w|)是一种编写\w?的详细方式,首先检查\w,然后检查空字符串。

我删除了捕获组,因为似乎()仅用于分组属性。如果您确实需要捕获组,则(\w?)

同样,(|\w)是一种冗长的编写\w??的方式,在尝试\w之前先尝试空字符串。

(\w|.*)完全是一个不同的正则表达式。它会尝试匹配(按此顺序)一个字符\w 0或更多任何字符(行终止符除外).*

我无法想象这个正则表达式片段如何有用。