如何检查一个字符串是否只包含数字和字母,即是否为字母数字混合字符串?
如何检查一个字符串是否只包含数字和字母,即是否为字母数字混合字符串?
如果您想检查ASCII字母数字字符,请尝试使用以下正则表达式:"^[a-zA-Z0-9]*$"
。在String.matches(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.htmlif
的使用不太好,更好的方式是 return s.matches(pattern)
。 - Fr4nzString pattern="[a-zA-Z0-9]+";
似乎会产生相同的效果,因为+是贪婪的。 - krick^, $
进行验证正则表达式。尝试在 https://regex101.com/ 等网站上测试字符串 abc@def
,你就会明白为什么了。你说的 +
是贪婪的是对的,但这意味着它将匹配 abc
和 def
而不是懒惰的 +?
匹配的 a
, b
, c
, d
, e
, f
。注意:如果你没有添加 ^,$
锚点,Java 的 String.matches() 方法会自动添加,但最好还是加上它们作为良好的习惯。 - wisbucky^[\pL\pN]+$
在哪里
\pL stands for any letter
\pN stands for any number
\\p{Alnum}
(但这是在Java 13中)。 - Erk\p {Alnum}
。"^[\\p{Alnum}]*$"
。"^[\\p{Alnum}]+$"
。使用字符类:
^[[:alnum:]]*$
"^[\\p {Alnum}]*$"
,如下所述。 (如果此类标记不被认为是网站指南明显的话,请告诉我,我会在问题本身上添加评论。 :) ) - Mark A. FitzgeraldPattern pattern = Pattern.compile("^[a-zA-Z0-9]*$");
Matcher matcher = pattern.matcher("Teststring123");
if(matcher.matches()) {
// yay! alphanumeric!
}
尝试使用此 [0-9a-zA-Z]+ 表达式,以便匹配 仅含有字母和数字且至少有一个字符
..
可能需要修改,请进行测试。
http://www.regexplanet.com/advanced/java/index.html
Pattern pattern = Pattern.compile("^[0-9a-zA-Z]+$");
Matcher matcher = pattern.matcher(phoneNumber);
if (matcher.matches()) {
}
Character.isLetterOrDigit
。在Java 8中,这可以与String#codePoints
和IntStream#allMatch
结合使用。boolean alphanumeric = str.codePoints().allMatch(Character::isLetterOrDigit);
要包含 [a-zA-Z0-9_]
,您可以使用 \w
。
因此,myString.matches("\\w*")
。(.matches
必须匹配整个字符串,因此不需要 ^\\w*$
。 .find
可以匹配子字符串)
https://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
100%字母数字正则表达式(它仅包含字母数字,甚至不包括整数和字符,只有字母数字)
例如:
特殊字符(不允许)
123(不允许)
asdf(不允许)
1235asdf(允许)
String name="^[^<a-zA-Z>]\\d*[a-zA-Z][a-zA-Z\\d]*$";
a12
不是字母数字吗? - Ayush