正则表达式:匹配模式但排除一种情况

yes*_*agg 4 regex regex-negation regex-lookarounds

我想包含从 a 到 m 的所有字符串。这可以使用[am]* regex来完成,但我不想要字符串以“ 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
Run Code Online (Sandbox Code Playgroud)

hwn*_*wnd 5

在这里使用负前瞻。如果你想匹配开头的所有字符串a通过m排除与“deal_string”开头的字符串,您可以使用:。

^(?!deal_string)[a-m].*$
Run Code Online (Sandbox Code Playgroud)

现场演示