验证文件名

时间:2011-08-15 00:01:12

标签: java regex

文件格式#[文件名]。[2个字母的区域设置]。[outputformat - html / subject / text] .xml

有效的文件名 -

myname.en.html.xml

myname2.pt.subject.xml等。

此外,文件名来自数据库中的一列。

有人可以用正则表达式帮助我吗?

谢谢!

根据@drf编辑#

public static boolean isValidFileName( String fileName ) {
    String expression = "^\\w+\\.[A-Z]{2}\\.(?>html|subject|text)\\.xml$" ; 
    CharSequence inputStr = expression ;
    Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(inputStr);
    return matcher.matches();
}

public static void main(String[] args) {
    String fileName = "somefile.en.html.xml" ;
    System.out.println("Is valid file name # " + fileName + " - " + isValidSEASFileName(fileName)  ) ;  
}

2 个答案:

答案 0 :(得分:3)

如果保守的文件名验证是可接受的(仅字母和数字,没有最大长度),并且双字母区域设置可以是任意两个字母,那么像这样(设置为不区分大小写)可能有效:

 ^\w+\.[A-Z]{2}\.(?>html|subject|text)\.xml$

答案 1 :(得分:0)

尝试以下方法:

[^\.]*\.[a-z]{2}\.(html|subject|text)\.xml