Как проверить, содержит ли строка только числа и алфавиты, т.е. является буквенно-цифровым?
Регулярное выражение для проверки строковой буквенно-цифровой строки
Ответ 1
Учитывая, что вы хотите проверить алфавитно-цифровые символы ASCII, попробуйте следующее: "^[a-zA-Z0-9]*$"
. Используйте этот String.matches(Regex)
в 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
Ответ 2
Чтобы быть совместимым с Юникодом:
^[\pL\pN]+$
где
\pL stands for any letter
\pN stands for any number
Ответ 3
Это 2016 или позже, и все продвигалось. Это соответствует буквенно-цифровым строкам Unicode:
^[\\p{IsAlphabetic}\\p{IsDigit}]+$
Смотрите ссылку (раздел "Классы для юникодовых скриптов, блоков, категорий и двоичных свойств" ). Там также этот ответ, который я нашел полезным.
Ответ 4
См. документацию Pattern.
Предположив US-ASCII-алфавит (a-z, A-Z), вы можете использовать \p{Alnum}
.
Регулярное выражение для проверки того, что строка содержит только такие символы, "^[\\p{Alnum}]*$"
.
Это также соответствует пустой строке. Чтобы исключить пустую строку: "^[\\p{Alnum}]+$"
.
Ответ 5
Использовать классы символов:
^[[:alnum:]]*$
Ответ 6
Pattern pattern = Pattern.compile("^[a-zA-Z0-9]*$");
Matcher matcher = pattern.matcher("Teststring123");
if(matcher.matches()) {
// yay! alphanumeric!
}
Ответ 7
попробуйте это [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()) {
}
Ответ 8
100% буквенно-цифровой RegEx (он содержит только буквенно-цифровые, даже не целые и символы, только буквенно-цифровые)
Например:
специальный символ (не допускается)
123 (не разрешено)
asdf (не разрешено)
1235asdf (разрешено)
String name="^[^<a-zA-Z>]\\d*[a-zA-Z][a-zA-Z\\d]*$";
Ответ 9
Если вы также хотите включить буквы на иностранных языках, вы можете попробовать:
String string = "hippopotamus";
if (string.matches("^[\\p{L}0-9']+$")){
string is alphanumeric do something here...
}
Или, если вы хотите разрешить определенный специальный символ, но не другие. Например, для # или space вы можете попробовать:
String string = "#somehashtag";
if(string.matches("^[\\p{L}0-9'#]+$")){
string is alphanumeric plus #, do something here...
}
Ответ 10
Чтобы проверить, является ли строка буквенно-цифровой, вы можете использовать метод, который просматривает каждый символ в строке и проверяет, является ли он буквенно-цифровым.
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;
}