我有一个文件名,比如upload 23_3.jpg。我只允许使用字母、(.)句点、()半音符号、下划线
Pattern p = Pattern.compile("[^a-z0-9_.]", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(i.getFileName());
boolean specialCharFound = m.find(); //this will return true if any other characters are found
^意思不是a-z,字母,我加了uu和,。但不起作用。知道如何添加''''.'-'字符吗?
3条答案
按热度按时间7uzetpgm1#
不知道“^”在做什么。我想你应该把它去掉。
你需要用斜杠转义特殊字符。我认为只有“.”应该逃走,而且不需要逃走。
尝试:[a-z0-9.-.]
如果-和\u对不区分大小写有问题,请考虑pattern.unicode\u大小写。或者考虑no case标志并添加a-z。
try:[a-za-z0-9.-.],没有案例
tnkciper2#
您可以直接在character类的末尾添加这些字符。
wpx232ag3#
使用
Pattern.compile("[\\w\\s.-]+")
和m.matches()
:参见正则表达式证明。
解释