小编典典

字符串的正则表达式不以给定的后缀结尾

all

我无法找到合适的正则表达式来匹配任何 以某些条件结尾的字符串。例如,我不想匹配任何以a.

这匹配

b
ab
1

这不匹配

a
ba

我知道正则表达式应该$以标记结尾,但我不知道它之前应该是什么。

编辑 :原始问题似乎不是我的案例的合法示例。那么:如何处理多个字符?说什么不以ab?

我已经能够解决这个问题,使用这个线程

.*(?:(?!ab).).$

尽管这样做的缺点是,它不匹配一个字符的字符串。


阅读 83

收藏
2022-05-22

共1个答案

小编典典

你没有给我们语言,但如果你的正则表达式支持在 assertion 后面,这就是你需要的:

.*(?<!a)$

(?<!a)是一个否定的lookbehind断言,它确保在字符串(或带有m修饰符的行)结束之前,没有字符“a”。

在 Regexr 上查看

您还可以使用其他字符轻松扩展它,因为它检查字符串而不是字符类。

.*(?<!ab)$

这将匹配不以“ab”结尾的任何内容,请参见 Regexr

2022-05-22