用于检查字符串是否严格是字母数字的正则表达式

问题描述 投票:47回答:10

如何检查字符串是否只包含数字和字母表,即。是字母数字?

java regex alphanumeric
10个回答
74
投票

考虑到要检查ASCII字母数字字符,请尝试:"^[a-zA-Z0-9]*$"。在String.matches(Regex)中使用此RegEx,如果字符串是字母数字,则返回true,否则返回false。

public boolean isAlphaNumeric(String s){
    String pattern= "^[a-zA-Z0-9]*$";
    return s.matches(pattern);
}

如果它有帮助,请阅读此内容以获取有关正则表达式的更多详细信息:http://www.vogella.com/articles/JavaRegularExpressions/article.html


-4
投票

要检查String是否为字母数字,可以使用遍历字符串中每个字符的方法并检查它是否为字母数字。

    public static boolean isAlphaNumeric(String s){
            for(int i = 0; i < s.length(); i++){
                    char c = s.charAt(i);
                    if(!Character.isDigit(c) && !Character.isLetter(c))
                            return false;
            }
            return true;
    }

24
投票

为了兼容unicode:

^[\pL\pN]+$

哪里

\pL stands for any letter
\pN stands for any number

12
投票

它是2016年或更晚,事情已经取得了进展。这匹配Unicode字母数字字符串:

^[\\p{IsAlphabetic}\\p{IsDigit}]+$

请参阅the reference(“Unicode脚本,块,类别和二进制属性的类”一节)。还有this answer,我发现有帮助。


9
投票

请参阅Pattern的文档。

假设US-ASCII字母表(a-z,A-Z),您可以使用\p{Alnum}

检查一行只包含这些字符的正则表达式是"^[\\p{Alnum}]*$"

这也匹配空字符串。要排除空字符串:"^[\\p{Alnum}]+$"


5
投票

使用字符类:

^[[:alnum:]]*$

3
投票
Pattern pattern = Pattern.compile("^[a-zA-Z0-9]*$");
Matcher matcher = pattern.matcher("Teststring123");
if(matcher.matches()) {
     // yay! alphanumeric!
}

1
投票

试试这个[0-9a-zA-Z] +为only alpha and num with one char at-least ..

可能需要修改,所以测试它

http://www.regexplanet.com/advanced/java/index.html

Pattern pattern = Pattern.compile("^[0-9a-zA-Z]+$");
Matcher matcher = pattern.matcher(phoneNumber);
if (matcher.matches()) {

}

-1
投票

如果您还想包含外语字母,可以尝试:

String string = "hippopotamus";
if (string.matches("^[\\p{L}0-9']+$")){
    string is alphanumeric do something here...
}

或者,如果您想允许特定的特殊角色,而不是任何其他角色。例如,对于#或空格,您可以尝试:

String string = "#somehashtag";
if(string.matches("^[\\p{L}0-9'#]+$")){
    string is alphanumeric plus #, do something here...
}

-1
投票

100%字母数字RegEx(它只包含字母数字,甚至不包含整数和字符,只包含字母数字)

例如:

特殊字符(不允许) 123(不允许) asdf(不允许) 1235asdf(允许)


String name="^[^<a-zA-Z>]\\d*[a-zA-Z][a-zA-Z\\d]*$";
© www.soinside.com 2019 - 2024. All rights reserved.