Java 正则表达式模式优先级

Java 正则表达式模式优先级,java,regex,Java,Regex,我已经设置了模式Part\s[V | IV | III | II | I][:]问题是,当遇到Part III时,它会确认Part I是匹配的,并删除另外两个II。是否无法使模式中的III具有更高的优先级,以便将其包含在查找的内容中?问题在于字符类(和)仅与单个字符匹配。所以它匹配其中的任何一个字符,在这个例子中,你只是重复了我好几次。您需要的是输入一个或多个字符串,而不是字符。即 (Part\s(V|IV|III|II|I)[:]?) 请注意圆括号而不是方括号。您遇到的问题是字符类(和)只匹

我已经设置了模式
Part\s[V | IV | III | II | I][:]
问题是,当遇到
Part III
时,它会确认
Part I
是匹配的,并删除另外两个
II
。是否无法使模式中的
III
具有更高的优先级,以便将其包含在查找的内容中?

问题在于字符类(和)仅与单个字符匹配。所以它匹配其中的任何一个字符,在这个例子中,你只是重复了我好几次。您需要的是输入一个或多个字符串,而不是字符。即

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

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

您遇到的问题是字符类(和)只匹配单个字符。所以它匹配其中的任何一个字符,在这个例子中,你只是重复了我好几次。您需要的是输入一个或多个字符串,而不是字符。即

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

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

您可以使用
(Part\s(V | IV | III | II | I)[:])
您可以使用
(Part\s(V | IV | III | II | I)[:])
对于您的问题,这不是有效的正则表达式。您正在滥用字符类进行析取。用括号替换括号。
周围的括号也是多余的。这不是解决问题的有效正则表达式。您正在滥用字符类进行析取。用括号替换括号。
周围的括号也是多余的。