我无法找到合适的正则表达式来匹配任何 不 以某些条件结尾的字符串。例如,我不想匹配任何以a.
a
这匹配
b ab 1
这不匹配
a ba
我知道正则表达式应该$以标记结尾,但我不知道它之前应该是什么。
$
编辑 :原始问题似乎不是我的案例的合法示例。那么:如何处理多个字符?说什么不以ab?
ab
我已经能够解决这个问题,使用这个线程:
.*(?:(?!ab).).$
尽管这样做的缺点是,它不匹配一个字符的字符串。
你没有给我们语言,但如果你的正则表达式支持在 assertion 后面,这就是你需要的:
.*(?<!a)$
(?<!a)是一个否定的lookbehind断言,它确保在字符串(或带有m修饰符的行)结束之前,没有字符“a”。
(?<!a)
m
在 Regexr 上查看
您还可以使用其他字符轻松扩展它,因为它检查字符串而不是字符类。
.*(?<!ab)$
这将匹配不以“ab”结尾的任何内容,请参见 Regexr