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)[:])
对于您的问题,这不是有效的正则表达式。您正在滥用字符类进行析取。用括号替换括号。:
周围的括号也是多余的。这不是解决问题的有效正则表达式。您正在滥用字符类进行析取。用括号替换括号。:
周围的括号也是多余的。