给定句子中的全名,除了具有该全名的句子外,是否有其他方法可以匹配?

时间:2019-02-17 12:29:56

标签: regex

下面是我想出的正则表达式

它用于匹配除给定名称外的任何名字和姓氏

(第一个)(最后一个)上大学

  

^(?!(tom tom))([A-Za-z'$] + [A-Za-z'$] +)上大学了

https://regex101.com/r/Zsc9W5/1

汤姆·汤姆(Tom Tom)上大学了(不匹配)

这就是我要寻找的

但是使用撇号时

'tom tom(匹配项)
to'm tom(匹配项)
汤姆(匹配)
tom tom'(不匹配)
汤姆汤姆(不匹配)

最后两个应该匹配

我想念什么?

1 个答案:

答案 0 :(得分:1)

由于开始时为负前行,因此最后2个将不匹配,这断言了右边的不是tom tom。在以tom tom开头的最后两个示例中,这并不成功。

一种方法可能是在否定前瞻之后添加一个与字符集[^A-Za-z'$]不匹配的否定字符类:

^(?!tom tom[^A-Za-z'$])([A-Za-z'$]+ [A-Za-z'$]+) went to college

Regex demo