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

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


这个匹配


b

ab

1

这不匹配


a

ba

我知道正则表达式应该$以标记结束而结束,尽管我不知道该怎么做。


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


我已经可以使用以下线程解决此问题:


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

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


白板的微信
浏览 2114回答 3
3回答

慕姐4208626

您没有给我们提供语言,但是如果您的正则表达式风味支持不在assert 后面,那么您需要:.*(?<!a)$(?<!a)是断言式的后置断言,可确保在字符串(或带m修饰符的行)结束之前没有字符“ a”。看到这里Regexr您还可以轻松地用其他字符扩展它,因为这会检查字符串并且不是字符类。.*(?<!ab)$这将匹配不以“ ab”结尾的任何内容,请在Regexr上查看

慕标5832272

使用not(^)符号:.*[^a]$如果将^符号放在方括号的开头,则表示“除方括号外的所有内容”。$仅仅是末日的锚。对于多个字符,只需将它们全部放在自己的字符集中:.*[^a][^b]$
打开App,查看更多内容
随时随地看视频慕课网APP