正则表达式多重否定前瞻

Thr*_*eaT 3 java regex

这是我的正则表达式模式: [Ss]ection\s\d+(?![a-zA-z])(?!</ref>)

例如,它应匹配:section 5section 50

例如,它应该匹配:section 5Asection 5</ref>section 5A</ref>section 50A

问题是,实际上它与错误相符:http://regexr.com?33ien

虽然不确定这个模式有什么问题...

Psh*_*emo 8

也许试试吧[Ss]ection\s\d++(?![a-zA-z])(?!</ref>).++是占有量词.这个量词类似于贪婪量词,除了它阻止它与正则表达式的后续部分使用时匹配的字符串片段.

System.out.println("ababab".matches("(ab)++ab")); 
// prints false since last "ab" is possessed by (ab)++ 
Run Code Online (Sandbox Code Playgroud)