文件格式#[文件名]。[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) ) ;
}
答案 0 :(得分:3)
如果保守的文件名验证是可接受的(仅字母和数字,没有最大长度),并且双字母区域设置可以是任意两个字母,那么像这样(设置为不区分大小写)可能有效:
^\w+\.[A-Z]{2}\.(?>html|subject|text)\.xml$
答案 1 :(得分:0)
尝试以下方法:
[^\.]*\.[a-z]{2}\.(html|subject|text)\.xml