可选组表达式

Optional Group Expression

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

拥有一个匹配某物但除此之外可以匹配任何东西的组有什么实际用途吗?那和(\w|.*)有什么区别?谢谢

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

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

同样,(|\w)\w?? 的一种冗长写法,它首先尝试空字符串,然后再尝试 \w.


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

虽然我无法想象这个正则表达式片段会有什么用。