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