下面是我想出的正则表达式
它用于匹配除给定名称外的任何名字和姓氏
(第一个)(最后一个)上大学
^(?!(tom tom))([A-Za-z'$] + [A-Za-z'$] +)上大学了
https://regex101.com/r/Zsc9W5/1
汤姆·汤姆(Tom Tom)上大学了(不匹配)
这就是我要寻找的
但是使用撇号时
'tom tom(匹配项)
to'm tom(匹配项)
汤姆(匹配)
tom tom'(不匹配)
汤姆汤姆(不匹配)
最后两个应该匹配
我想念什么?
答案 0 :(得分:1)
由于开始时为负前行,因此最后2个将不匹配,这断言了右边的不是tom tom。在以tom tom开头的最后两个示例中,这并不成功。
一种方法可能是在否定前瞻之后添加一个与字符集[^A-Za-z'$]
不匹配的否定字符类:
^(?!tom tom[^A-Za-z'$])([A-Za-z'$]+ [A-Za-z'$]+) went to college