2

我在 Java 7 中使用这个 glob 只成功返回音频文件

*.{mp3,mp4,m4p,m4b,m4a,ogg,flac,wma}

但我还需要过滤掉任何以._ 开头的文件

似乎没有办法只排除模式,包括 glob 所以我然后切换到正则表达式但没有太多运气,这是我目前的(没有工作尝试)

[^\.].*\.{mp3,mp4,m4a,ogg,flac,wma}

请问我可以使用 glob 或正则表达式的解决方案吗

4

1 回答 1

1

你可以试试这个: -

^(?!._).*[.](?:mp3|mp4|m4p|m4b|m4a|ogg|flac|wma)$

解释: -

^      // Beginning of the string
(?!._) // Negative look-ahead to confirm that there is no `._` at the starting.

.*      // 0 or more any character

[.]     // A dot (.)

(?:mp3|mp4|m4p|m4b|m4a|ogg|flac|wma)  // Any one extension matched at the end.
$

请注意,您不需要dot (.)在字符类中转义。

(?:...)是非捕获组。

于 2012-12-19T10:31:06.427 回答