Java正则表达式排除特殊字符

时间:2013-08-22 08:27:13

标签: java

我必须验证一个String以检查它是否包含特殊字符。此字符串可能包含任何数字和单词(包括unicode,即:à,â,ô..)但不应接受任何特殊字符(即:!,@,#,%,^ ...)

抱歉我的英语不好。

2 个答案:

答案 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));//
    }