正则表达式模式优先级

时间:2012-11-23 09:46:58

标签: java regex

我设置了模式Part\s[V|IV|III|II|I][:]?问题是,当它遇到Part III时,它会确认Part I为匹配并删除其他两个{{1} }}的。是否无法使模式中的II具有更高的优先级,因此它包含在所发现的内容中?

2 个答案:

答案 0 :(得分:4)

您遇到的问题是字符类([和])仅匹配单个字符。所以它匹配其中的任何一个字符,在这种情况下,你只是简单地重述了几次。你需要的是或多个字符串而不是字符。即。

(Part\s(V|IV|III|II|I)[:]?)

请注意圆括号而不是方括号。

答案 1 :(得分:1)

您可以使用(Part\s(V|IV|III|II|I)[:]?)