我找不到合适的正则表达式来匹配任何不以某些条件结尾的字符串。例如,我不想匹配任何以a结尾的内容。
与匹配的
b
ab
1这与不匹配
a
ba我知道正则表达式应该以$结束,尽管我不知道在它之前应该有什么。
编辑:对于我的情况,最初的问题似乎不是一个合法的例子。那么:如何处理多个字符呢?说出任何不以ab结尾的内容
我已经能够通过使用this thread修复这个问题
.*(?:(?!ab).).$虽然这样做的缺点是,它不匹配一个字符的字符串。
发布于 2013-05-06 20:29:54
你没有给我们语言,但是如果你的regex风格支持look behind assertion,这就是你需要的:
.*(?<!a)$(?<!a)是一个反向的后处理断言,它确保在字符串(或带有m修饰符的行)的末尾之前没有字符"a“。
您还可以很容易地使用其他字符来扩展它,因为这是对字符串的检查,而不是字符类。
.*(?<!ab)$这将匹配任何不以"ab“结尾的内容,see it on Regexr
发布于 2013-05-06 20:11:42
使用not (^)符号:
.*[^a]$如果您将^符号放在括号的开头,则表示“除了括号中的内容之外的所有内容”。$只是指向末尾的锚点。
For multiple characters,把它们都放在自己的字符集里:
.*[^a][^b]$发布于 2015-11-23 18:24:06
https://stackoverflow.com/questions/16398471
复制相似问题