我在Java 7中使用这个glob只能成功返回音频文件
*.{mp3,mp4,m4p,m4b,m4a,ogg,flac,wma}
但我还需要过滤掉以 ._
开头的所有文件文件似乎没有办法只排除模式,包括globs所以我然后切换到正则表达式但没有太多运气,这是我当前的(没有工作尝试)
[^\.].*\.{mp3,mp4,m4a,ogg,flac,wma}
我可以使用glob或正则表达式获得解决方案吗
答案 0 :(得分: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 (.)
。
(?:...)
是非捕获组。