java-用于检查字符串是否严格为字母数字的正则表达式
如何检查字符串是否仅包含数字和字母,即。 是字母数字?
O__O asked 2020-02-02T11:00:33Z
10个解决方案
75 votes
考虑到您要检查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]
Raghav answered 2020-02-02T11:00:51Z
24 votes
为了与unicode兼容:
^[\pL\pN]+$
哪里
\pL stands for any letter
\pN stands for any number
Toto answered 2020-02-02T11:01:15Z
12 votes
是2016年或更晚,事情已经取得了进展。 这与Unicode字母数字字符串匹配:
^[\\p{IsAlphabetic}\\p{IsDigit}]+$
请参阅参考(“ Unicode脚本,块,类别和二进制属性的类”一节)。 还有一个我认为有用的答案。
Johannes Jander answered 2020-02-02T11:01:39Z
9 votes
请参阅Pattern的文档。
假设使用US-ASCII字母(a-z,A-Z),则可以使用"^[\\p{Alnum}]+$"。
检查一行仅包含此类字符的正则表达式为"^[\\p{Alnum}]+$"。
这也匹配空字符串。 要排除空字符串:"^[\\p{Alnum}]+$"。
sudocode answered 2020-02-02T11:02:13Z
5 votes
使用字符类:
^[[:alnum:]]*$
Igor Chubin answered 2020-02-02T11:02:33Z
3 votes
Pattern pattern = Pattern.compile("^[a-zA-Z0-9]*$");
Matcher matcher = pattern.matcher("Teststring123");
if(matcher.matches()) {
// yay! alphanumeric!
}
Seth Malaki answered 2020-02-02T11:02:49Z
1 votes
尝试将此[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()) {
}
Dheeresh Singh answered 2020-02-02T11:03:18Z
-1 votes
如果您还希望包括外文字母,则可以尝试:
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...
}
BrianG7 answered 2020-02-02T11:03:42Z
-1 votes
100%字母数字的RegEx(仅包含字母数字,甚至不包含整数和字符,仅包含字母数字)
例如:
特殊字符(不允许)
123(不允许)
asdf(不允许)
1235asdf(允许)
String name="^[^]\\d*[a-zA-Z][a-zA-Z\\d]*$";
Amit answered 2020-02-02T11:04:24Z
-4 votes
若要检查字符串是否为字母数字,可以使用遍历字符串中每个字符并检查其是否为字母数字的方法。
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;
}
Justin Cairns answered 2020-02-02T11:04:44Z