可选组表达式

2022-03-23 00:00:00 regex php preg-replace

今天我在工作中使用正则表达式,在一些实验期间,我注意到编译了一个正则表达式,如(w|)。这似乎是可选的组,但联机查找没有任何结果。

让一个组匹配某些内容,但在其他方面可以匹配任何内容,这有什么实际用途吗?这与(w|.*)有什么不同?谢谢。


解决方案

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

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

同理,(|w)是一种冗长的编写w??的方式,它先尝试空字符串,然后再尝试w


(w|.*)是完全不同的正则表达式。它尝试匹配(按该顺序)一个单词字符w、或0个或多个任意字符(行终止符除外).*

不过,我无法想象这个正则表达式片段会有什么用处。

相关文章