我编写了一个正则表达式来捕获文本中的任何特殊字符。
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/