我必须验证一个String以检查它是否包含特殊字符。此字符串可能包含任何数字和单词(包括unicode,即:à,â,ô..)但不应接受任何特殊字符(即:!,@,#,%,^ ...)
抱歉我的英语不好。
答案 0 :(得分:2)
此角色类
[\p{L}\p{No}\p{Space}]
将包括Unicode声明为“letters”,“numbers”或“whitespace characters”的所有字符。如果要将字符串与此类字符类匹配,则应编写以下内容:
input.matches("[\\p{L}\\p{No}\\p{Space}]+")
为了将来参考,我从java.util.Pattern
课程中提取了所有这些信息。您应该参考该页面以了解将来对Java正则表达式的所有兴趣。
答案 1 :(得分:0)
您可以尝试[\\p{L}\\s]+
。例如。这将删除特殊字符。
Pattern p=Pattern.compile("[\\p{L}\\s]+");
Matcher m=p.matcher("hissd@");
if(m.find()){
System.out.println(m.group(0));//
}