正则表达式:匹配模式但排除一个案例

时间:2014-07-15 14:37:55

标签: regex regex-negation regex-lookarounds

我想要包含从a到m的所有字符串。 这可以使用 [a-m] * 正则表达式完成 但我不想要一个字符串以" deal_string "开头的情况。这是什么正则表达式?

测试用例:

assets/filename.ext           -> pass
deal_string/filename.ext      -> fail
deal_string.ext               -> fail
deal_string_1.ext             -> fail
deal_draft.txt                -> pass
assets_deal_string.txt        -> pass
bombay.txt                    -> pass
zombie.srt                    -> fail
some_deal_string.txt          -> fail
zobie_special_string.txt      -> fail

1 个答案:

答案 0 :(得分:4)

在此处使用否定前瞻。如果您想匹配以am开头的所有字符串,不包括以" deal_string"开头的字符串,您可以使用:。

^(?!deal_string)[a-m].*$

Live Demo