如何匹配文件结束而不是正则表达式

时间:2015-07-21 19:44:36

标签: regex string regex-negation regex-lookarounds

我正在尝试过滤所有未以此结尾的文件,例如mp3wv 我试图使用类似^.*(?<![mp3|wv])$之类的东西,但这个表达式不起作用 请帮助创建有效的表达。

2 个答案:

答案 0 :(得分:3)

您可以改用Negative Lookahead。

^(?!.*(?:mp3|wv)$).*

答案 1 :(得分:3)

由于lookbehind是零宽度断言,你可以写:

^.*(?<!mp3)(?<!wv)$

或更好($也是零宽度断言):

^.*$(?<!mp3)(?<!wv)

如果你的正则表达式允许它(PCRE,Java),你可以使用替换:

^.*$(?<!mp3|wv)

注意:如果您的目标只是知道字符串是否以&#34; vw&#34;结尾?或&#34; mp3&#34;,您可以测试(?:mp3|wv)$是否为假。