0

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

attachment; filename="Some filename.ext"

所以基本上我的方法(java)是Matcher采用 a Pattern

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

myMatcher.find()回报False

RegEx 哪里出错了?

4

1 回答 1

5

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

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

如果字符可能多于空格、字母、数字、句点和下划线,您可能希望使用负字符类,它只接受所有内容,直到下一个引号:

"attachment; filename=\"([^\"]+)\""
于 2012-12-02T12:59:54.227 回答