文字列に数字とアルファベットのみが含まれているかどうかを確認するにはどうすればよいですか。は英数字ですか?
12 に答える
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.html
ユニコード互換にするために:
^[\pL\pN]+$
どこ
\pL stands for any letter
\pN stands for any number
Patternのドキュメントを参照してください。
US-ASCII アルファベット (az、AZ) を想定すると、 を使用できます\p{Alnum}
。
行にそのような文字のみが含まれていることを確認する正規表現は"^[\\p{Alnum}]*$"
.
これは空の文字列にも一致します。空の文字列を除外するには: "^[\\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]+ for 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()) {
}
を含めるには[a-zA-Z0-9_]
、 を使用できます\w
。
だからmyString.matches("\\w*")
。(.matches
文字列全体に一致する必要があるため、^\\w*$
必要ありません。.find
部分文字列に一致できます)
https://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
文字列が英数字かどうかを確認するには、文字列内のすべての文字を調べて英数字かどうかを確認するメソッドを使用できます。
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;
}