用于检查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] * $”;