我正在使用模式匹配将文件扩展名与我的表达式String匹配,其代码如下:-
public static enum FileExtensionPattern
{
WORDDOC_PATTERN( "([^\\s]+(\\.(?i)(txt|docx|doc))$)" ), PDF_PATTERN(
"([^\\s]+(\\.(?i)(pdf))$)" );
private String pattern = null;
FileExtensionPattern( String pattern )
{
this.pattern = pattern;
}
public String getPattern()
{
return pattern;
}
}
pattern = Pattern.compile( FileExtensionPattern.WORDDOC_PATTERN.getPattern() );
matcher = pattern.matcher( fileName );
if ( matcher.matches() )
icon = "blue-document-word.png";
当文件名仍然为“ Home&Artifact.docx”时,matcher.matches返回false。它对于扩展名为“ .doc”的文件名有效。
您能指出我做错了吗?
“ Home&Artifact.docx”包含空格。由于您允许除空格以外的任何char [^\s]+
,因此此文件名不匹配。
尝试以下方法:
(.+?(\.(?i)(txt|docx|doc))$
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句