java - Java 不区分大小写的正则表达式值

标签 java regex

我编写了一个正则表达式来捕获文本中的任何特殊字符。

regular expression: (?i)[$&+,:;=?@#|'<>.-^*()%!]

我正在传递文本“Testing”,但得到的输出表明该文本包含特殊字符。但是一旦我通过小“t”的“测试”,我就不会收到任何错误..你能帮忙吗?

代码:

String REGEX = "(?i)[$&+,:;=?@#|'<>.-^*()%!]";
String fieldValue="Testing";
java.util.regex.Pattern pattern = java.util.regex.Pattern.compile(REGEX);
java.util.regex.Matcher matcher = pattern.matcher(fieldValue);
if (matcher.find()) {
    String strWarningMessage = "Field value cannot contain Special Characters";
    System.out.println(strWarningMessage);
}
else
    System.out.println("OK");

最佳答案

- 移动到字符类的末尾或对其进行转义:

"[$&+,:;=?@#|'<>.^*()%!-]"

并且可以删除 (?i),因为您的模式没有指定任何具有不同大小写的字符。

在原始正则表达式中,.-^ 指定从 . (U+002E) 到 ^ (U+ 005E),其中包含大写字母 A-Z 和数字 0-9

关于java - Java 不区分大小写的正则表达式值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26624294/

相关文章:

java - 编写一个接受对象作为参数的方法,并使用它的方法来做某事(java)

java - 如何从android中的文本文件中提取子字符串?

Java 替换 URL 中斜杠之间或之后的任何数字

mysql - 如何在 MYSQL 中修改此查询?

java - 正则表达式提取范围内的数字

javascript - 如何使用正则表达式获取子字符串

java - 如何在字符串映射中保留最大值

java - Windows 虚拟键盘

java - Hibernate 检查线程中与数据库的连接(每个时间段)

ruby - 匹配数字格式的正则表达式