正则表达式组不匹配
regex group not matching
我有正则表达式
(\d|(IV|I{0,3})|\bone\b|\btwo\b|\bthree\b|\bfour\b)[\w\s]+
如果我用句子
- '1 有伤口' - 1 如预期在第 1 组中匹配
- 'IV has wound' - IV 按预期在组 1 中匹配
但是,句子
- 'one has wound' - 第一个词在第 1 组中不匹配
当我如下修改正则表达式时
(\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
我有正则表达式
(\d|(IV|I{0,3})|\bone\b|\btwo\b|\bthree\b|\bfour\b)[\w\s]+
如果我用句子
- '1 有伤口' - 1 如预期在第 1 组中匹配
- 'IV has wound' - IV 按预期在组 1 中匹配
但是,句子
- 'one has wound' - 第一个词在第 1 组中不匹配
当我如下修改正则表达式时
(\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