这是我的正则表达式模式:[Ss]ection\s\d+(?![a-zA-z])(?!</ref>)
例如,它应该匹配:section 5
或 section 50
例如,它应该不匹配:section 5A
或 section 5</ref>
或 section 5A</ref>
或 section 50A
问题是实际上它匹配错误:http://regexr.com?33ien
虽然不确定模式有什么问题......
最佳答案
也许试试 [Ss]ection\s\d++(?![a-zA-z])(?!</ref>)
.++ 是 possessive quantifier .这个量词类似于贪心量词,除了它阻止它匹配的字符串片段被正则表达式的后面部分使用。
例子
System.out.println("ababab".matches("(ab)++ab"));
// prints false since last "ab" is possessed by (ab)++
关于java - 正则表达式多重负前瞻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14561867/