Регулярное выражение для проверки строковой буквенно-цифровой строки

Как проверить, содержит ли строка только числа и алфавиты, т.е. является буквенно-цифровым?

Ответ 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;
    }