Рубрики
Без рубрики

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

В Java мы можем использовать регулярное выражение `[a-za-Z0-9]` для сопоставления буквенно-цифровых символов.

Буквенно-цифровые представляют собой комбинацию алфавитных [a-za-Z] и числовые [0-9] символы, 62 символа.

Мы можем использовать приведенное ниже регулярное выражение для сопоставления буквенно-цифровых символов:

  ^[a-zA-Z0-9]+$

Объяснение регулярного выражения

  ^       # start string
  [a-z]   # lowercase letters from a to z
  [A-Z]   # uppercase letters from A to Z
  [0-9]   # digits from 0 to 9
  +       # one or more characters
  $       # end string

1. Регулярное выражение Java Буквенно-цифровое

Ниже приведено регулярное выражение Java для сопоставления буквенно-цифровых символов.

package com.mkyong.regex.string;

public class StringUtils {

    private static final String ALPHANUMERIC_PATTERN = "^[a-zA-Z0-9]+$";

    public static boolean isAlphanumeric(final String input) {
        return input.matches(ALPHANUMERIC_PATTERN);
    }

}

Ниже приведены простые тесты JUnit 5 для проверки буквенно-цифровых символов.

package com.mkyong.regex.string;

import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;

import java.util.stream.Stream;

import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;

public class StringUtilsTest {

    @ParameterizedTest(name = "#{index} - Run test with input = {0}")
    @MethodSource("validAlphanumericProvider")
    void test_alphanumeric_regex_valid(String input) {
        assertTrue(StringUtils.isAlphanumeric(input));
    }

    static Stream validAlphanumericProvider() {
        return Stream.of(
                "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
                "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
                "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
                "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
                "0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
    }

    @ParameterizedTest(name = "#{index} - Run test with input = {0}")
    @MethodSource("invalidAlphanumericProvider")
    void test_alphanumeric_regex_invalid(String input) {
        assertFalse(StringUtils.isAlphanumeric(input));
    }

    static Stream invalidAlphanumericProvider() {
        return Stream.of(
                "_",                        // underscore
                "@",                        // symbols
                " ",                        // space
                "");                        // empty
    }

}

2. Регулярное выражение Буквенно-цифровое и подчеркивание

Регулярное выражение \w эквивалентно [A-Za-z0-9_] , соответствует буквенно-цифровым символам и подчеркиванию.

package com.mkyong.regex.string;

public class StringUnderscore {

    public static void main(String[] args) {

        String str = "Hello_World_Java";

        // or ^[\\w]+$   
        if (str.matches("^[a-zA-Z0-9_]+$")) {
            System.out.println("Yes, true.");
        } else {
            System.out.println("failed!");
        }
    }
}

Выход

  Yes, true.

3. Регулярное выражение Буквенно-цифровое и пробел

Регулярное выражение \\s соответствует пробелам.

package com.mkyong.regex.string;

public class StringSpace {

    public static void main(String[] args) {

        String str = "Hello World Java";
        if (str.matches("^[a-zA-Z0-9\\s]+$")) {
            System.out.println("Yes, true.");
        } else {
            System.out.println("failed!");
        }
    }
}

Выход

  Yes, true.

Скачать Исходный Код

$клон git $клон git

$cd java-регулярное выражение/строка

Рекомендации

Оригинал: “https://mkyong.com/regular-expressions/java-regex-check-alphanumeric-string/”