RegEx获取引号中的文件名

时间:2012-12-02 12:57:07

标签: java regex

我有一个文件名(或基本上是一个字符串,因为它不需要有扩展名,但可以有空格),它由以下格式的字符串中的引号封装:

attachment; filename="Some filename.ext"

所以基本上我的方法(java)是用MatcherPattern

Matcher mat = Pattern.compile("attachment; filename=\"([\\w\\.]+)\"").matcher(filename);

myMatcher.find()会返回False

RegEx哪里出错了?

1 个答案:

答案 0 :(得分:5)

\\w与空格不匹配。此外,您不需要(但可能)转义.内部字符类。如果您只想允许空格,请将它们添加到角色类:

"attachment; filename=\"([\\w. ]+)\""

如果可能有多个字符而不是空格,字母,数字,句号和下划线,您可能需要使用负字符类,只需接收所有内容直到下一个引号:

"attachment; filename=\"([^\"]+)\""