拒绝包含a-z,A-Z,0-9以外字符的字符串

时间:2012-03-06 04:13:04

标签: java regex

我不熟悉Java的正则表达式,有人可以告诉我如何确定字符串是否包含a-z,A-Z,0-9以外的字符?

4 个答案:

答案 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)

正则表达可能有点矫枉过正。如果您可以使用第三方库,请使用GuavaCharMatcher

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]*");