正则表达式排除一个单词

时间:2016-09-22 12:44:57

标签: regex

我想写一个正则表达式,找到所有字符串看起来像“animals。*”在'*'上可以是任何符号,但不是'elephant'。

结果应该是:

  

输入:animals.fox =>结果:animals.fox

     

输入:animals.kitten =>结果:animals.kitten

但是

  

输入:animals.elephant =>结果:无

我写了一个正则表达式,但它无法正常工作。如何解决?

animals\.(?!elephant)

1 个答案:

答案 0 :(得分:2)

似乎唯一的问题是匹配.之后的单词。您使用的前瞻是零宽度断言,它不会将匹配的字符放入输出中,它只检查当前位置右侧的文本是否与其模式不匹配。如果匹配,则匹配失败。否则,它只返回 true 。因此,您需要在.之后使用这个词。

在模式的末尾添加[a-zA-Z]+\w+(取决于您需要匹配的内容,只需字母或字母/数字/下划线):

animals\.(?!elephant)\w+

请参阅regex demo