正则表达式组不匹配

regex group not matching

我有正则表达式

(\d|(IV|I{0,3})|\bone\b|\btwo\b|\bthree\b|\bfour\b)[\w\s]+

如果我用句子

但是,句子

当我如下修改正则表达式时

(\bone\b|\btwo\b|\bthree\b|\bfour\b|\d|(IV|I{0,3}))[\w\s]+

小组符合预期。

那么,我的问题是为什么更改小组的顺序有效..

我尝试查找正则表达式的顺序和优先级,但找不到任何相关内容..

感谢

我认为你的正则表达式有误,应该是

(\d|(IV|I{1,3})|\bone\b|\btwo\b|\bthree\b|\bfour\b)[\w\s

注意它是 I{1,3},而不是 I{0,3}

因此,您的正则表达式匹配 零 I,因此空捕获组 1