我有这个正则表达式:
^[a-z0-9]+([.\-][a-z0-9]+)*$
我只需要从匹配中排除一个单词“www”。 我尝试了否定前瞻,但没有成功。
最佳答案
使用这样的否定前瞻:
^(?!www$)[a-z0-9]+([.-][a-z0-9]+)*$
^^^^^^^^
这不会匹配等于 www
的字符串。
请参阅regex demo
如果您想让包含 -www-
或 .www.
的字符串匹配失败,请使用
^(?!.*\bwww\b)[a-z0-9]+([.-][a-z0-9]+)*$
参见another regex demo 。此模式包含一个 (?!.*\bwww\b)
前瞻,如果字符串内某处有 www
并且没有数字或字母,则整个匹配失败由于 \b
单词边界而将其舍入。
关于regex - 我需要从正则表达式中排除单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37924699/