【问题标题】:Java Regular expression exclude special characters [duplicate]Java正则表达式排除特殊字符[重复]
【发布时间】:2013-08-22 08:27:13
【问题描述】:

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

对不起,我的英语不好。

【问题讨论】:

  • 英语很好,但你的努力不是。你尝试了什么?

标签: java


【解决方案1】:

这个字符类

[\p{L}\p{No}\p{Space}]

将包括 Unicode 声明为“字母”、“数字”或“空白字符”的所有字符。如果您想将字符串与此类字符类进行匹配,您可以编写以下代码:

input.matches("[\\p{L}\\p{No}\\p{Space}]+")

为了将来参考,我从java.util.Pattern 类中提取了所有这些信息。您应该参考该页面以了解您未来对 Java 正则表达式的所有兴趣。

【讨论】:

  • [\p{L}\p{No}\p{Space}] 这是可行的。谢谢
【解决方案2】:

你可以试试[\\p{L}\\s]+。例如。这将删除特殊字符。

   Pattern p=Pattern.compile("[\\p{L}\\s]+");
    Matcher m=p.matcher("hissd@");
    if(m.find()){
        System.out.println(m.group(0));//
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-11
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多