Java 验证文件名
文件格式#[filename].[2个字母的区域设置].[outputformat-html/subject/text].xml 有效文件名- myname.en.html.xml myname2.pt.subject.xml等 此外,文件名来自数据库中的一列 谁能帮我学一下正则表达式吗 谢谢大家! 根据@drf编辑Java 验证文件名,java,regex,Java,Regex,文件格式#[filename].[2个字母的区域设置].[outputformat-html/subject/text].xml 有效文件名- myname.en.html.xml myname2.pt.subject.xml等 此外,文件名来自数据库中的一列 谁能帮我学一下正则表达式吗 谢谢大家! 根据@drf编辑 公共静态布尔值isValidFileName(字符串文件名){ 字符串表达式=“^\\w+\\.[A-Z]{2}\.(?>html | subject | text)\\\.xml
公共静态布尔值isValidFileName(字符串文件名){
字符串表达式=“^\\w+\\.[A-Z]{2}\.(?>html | subject | text)\\\.xml$”;
CharSequence inputStr=表达式;
Pattern=Pattern.compile(表达式,Pattern.CASE不区分大小写);
Matcher Matcher=pattern.Matcher(inputStr);
返回matcher.matches();
}
公共静态void main(字符串[]args){
String fileName=“somefile.en.html.xml”;
System.out.println(“是有效的文件名#”+fileName+“-”+isValidSEASFileName(fileName));
}
尝试以下操作:
[^\.]*\.[a-z]{2}\.(html|subject|text)\.xml
请尝试以下操作:
[^\.]*\.[a-z]{2}\.(html|subject|text)\.xml
如果保守的文件名验证是可接受的(仅限字母和数字,没有最大长度),并且两个字母的区域设置可以是任意两个字母,那么类似的东西(设置为不区分大小写)可以工作:
^\w+\.[A-Z]{2}\.(?>html|subject|text)\.xml$
如果保守的文件名验证是可接受的(仅限字母和数字,没有最大长度),并且两个字母的区域设置可以是任意两个字母,那么类似的东西(设置为不区分大小写)可以工作:
^\w+\.[A-Z]{2}\.(?>html|subject|text)\.xml$
无法对以下文件名使用上述reg-ex进行验证-spgspgbusinesswelcome.en.subject.xmlIt应该匹配--请澄清,在调用
matches()
并转义模式中的反斜杠时,是否使用了不区分大小写的标志?添加了我使用表达式创建的相应方法!有些人认为它仍然不起作用!无法对以下文件名使用上述reg-ex进行验证-spgspgbusinesswelcome.en.subject.xmlIt应该匹配--请澄清,在调用matches()
并转义模式中的反斜杠时,是否使用了不区分大小写的标志?添加了我使用表达式创建的相应方法!有些人认为它仍然不起作用!如果将行CharSequence inputStr=expression
更改为CharSequence inputStr=fileName
,则应返回true。如果将行CharSequence inputStr=expression
更改为CharSequence inputStr=fileName
,则应返回true。