正则表达式匹配字符串,但不包括

时间:2013-11-05 12:45:43

标签: regex

我正在尝试匹配以列表中的任何字符串开头的文件路径。这就是我正在使用的:

^/(dir1|dir2|dir3|tmp|dir4)/

我还尝试匹配所有以/tmp/开头但在此之后不包含special的路径。

这应该匹配:

/tmp/subdir/filename.ext

但这不应该:

/tmp/special/filename.ext

我似乎无法找到完成这项工作的方法。任何建议都将不胜感激。

3 个答案:

答案 0 :(得分:7)

试试这个

^((?:dir1|dir2|dir3|dir4|tmp(?!/special)).*)$

Regular expression visualization

Debuggex Demo

答案 1 :(得分:5)

尝试^(?i)/(dir1|dir2|dir3|tmp(?!\/(special))|dir4)/.*

(?i) =案例无效,这将与SpEcial,SPECial,SpEcIAL等相匹配。

{p> (?!\/(special)) = '/special' 的否定前瞻

答案 2 :(得分:1)

试试这个^(dir1|dir2|dir3|tmp(?!\/special)|dir4)

相关问题