代码之家  ›  专栏  ›  技术社区  ›  elapqpxsijws

如何匹配以正则表达式结尾的文件

  •  0
  • elapqpxsijws  · 技术社区  · 9 年前

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

    2 回复  |  直到 9 年前
        1
  •  3
  •   hwnd    9 年前

    您可以改用“负面展望”。

    ^(?!.*(?:mp3|wv)$).*
    
        2
  •  3
  •   Casimir et Hippolyte    9 年前

    由于lookbacking是一个零宽度断言,因此您可以编写:

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

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

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

    如果您的正则表达式风格允许(PCRE、Java),则可以使用替换:

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

    注意:如果您的目标只是知道字符串是否以“vw”或“mp3”结尾,那么您可以测试 (?:mp3|wv)$ 是假的。