我想写一个正则表达式,找到所有字符串看起来像“animals。*”在'*'上可以是任何符号,但不是'elephant'。
结果应该是:
输入:animals.fox =>结果:animals.fox
输入:animals.kitten =>结果:animals.kitten
但是
输入:animals.elephant =>结果:无
我写了一个正则表达式,但它无法正常工作。如何解决?
animals\.(?!elephant)
答案 0 :(得分:2)
似乎唯一的问题是匹配.
之后的单词。您使用的前瞻是零宽度断言,它不会将匹配的字符放入输出中,它只检查当前位置右侧的文本是否与其模式不匹配。如果匹配,则匹配失败。否则,它只返回 true 。因此,您需要在.
之后使用这个词。
在模式的末尾添加[a-zA-Z]+
或\w+
(取决于您需要匹配的内容,只需字母或字母/数字/下划线):
animals\.(?!elephant)\w+
请参阅regex demo