我不熟悉Java的正则表达式,有人可以告诉我如何确定字符串是否包含a-z,A-Z,0-9以外的字符?
答案 0 :(得分:12)
使用[^A-Za-z0-9]
regexp。您可以使用\\W
,但也会排除_
个字符。
Pattern p = Pattern.compile("[^A-Za-z0-9]");
if (p.matcher(stringToMatch).find()) {
//...
}
详细信息可在此处找到:java.util.regex.Pattern。
答案 1 :(得分:1)
正则表达可能有点矫枉过正。如果您可以使用第三方库,请使用Guava的CharMatcher
:
return CharMatcher.JAVA_LETTER_OR_DIGIT.negate().matchesAnyOf(string);
答案 2 :(得分:1)
这是Oracle的Java regex tutorial。
要专门匹配包含除字母数字以外的字符的字符串,请匹配[^a-zA-Z0-9]
。
答案 3 :(得分:1)
您可以使用String类的匹配方法:
String stringToMatch = "Abc192";
stringToMatch.matches("[a-zA-Z0-9]*");