用于检查string是否严格字母数字的正则expression式

我怎样才能检查一个string是否只包含数字和字母,即。 是字母数字?

    考虑到你想要检查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); } 

    这将有助于更多的细节正则expression式阅读http://www.vogella.com/articles/JavaRegularExpressions/article.html

    为了与Unicode兼容:

     ^[\pL\pN]+$ 

    哪里

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

    现在是2016年以后,事情已经有所进展。 这匹配Unicode字母数字string:

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

    请参阅参考资料 (“用于Unicode脚本,块,类别和二进制属性的类”一节)。 还有这个答案 ,我发现有帮助。

    请参阅模式的文档。

    假设US-ASCII字母表(az,AZ),您可以使用\p{Alnum}

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

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

    使用字符类:

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

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

    可能需要修改,所以testing它

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

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

    100%字母数字正则expression式(它只包含字母数字,甚至整数和字符只有字母数字)

    例如特殊字符(不允许)123(不允许)asdf(不允许)

    1235asdf(允许)

    String name =“^ [^] \ d * [a-zA-Z] [a-zA-Z \ d] * $”;