【问题标题】:Java | Prevent any special characters EXCEPT underscores爪哇 |防止除下划线外的任何特殊字符
【发布时间】:2016-04-21 01:56:16
【问题描述】:

正如标题所示,我想检查并防止字符串中出现任何特殊字符。但是,这样做我会阻止下划线(可以保留)。有没有办法允许下划线仍然存在?

这就是我处理支票的方式:

      Pattern pattern = Pattern.compile("[^a-zA-Z0-9&]", Pattern.CASE_INSENSITIVE);
                Matcher m = pattern.matcher(String.join("", args));
                if (m.find()) {
                //Code
                }

【问题讨论】:

  • 你不能在&之后添加_吗?在Regex101 上测试和工作。
  • 你似乎也允许 & 。

标签: java regex string matcher


【解决方案1】:

您的正则表达式当前允许使用任何字符、数字和与号 (&)。只需在否定集合中添加下划线即可:

Pattern pattern = Pattern.compile("[^_a-zA-Z0-9&]", Pattern.CASE_INSENSITIVE);

【讨论】:

  • 制作这个 CASE_INSENSITIVE 有什么意义(这很昂贵)?似乎该模式已经涵盖了所有大写和小写字母。
  • 这是真的;我只是对给定的示例进行了最小的修改。 Pattern.CASE_INSENSITIVE 是多余的。
猜你喜欢
  • 1970-01-01
  • 2013-01-11
  • 1970-01-01
  • 2012-10-10
  • 2023-03-19
  • 1970-01-01
  • 2015-01-24
  • 1970-01-01
  • 2014-02-12
相关资源
最近更新 更多