Как проверить строку на соответствие регулярному выражению в java?

Пользователь

от nicolette.stoltenberg , в категории: Java , 2 года назад

Как проверить строку на соответствие регулярному выражению в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dan_farrell , год назад

@nicolette.stoltenberg 

В Java вы можете использовать класс java.util.regex.Pattern для создания регулярного выражения и класс java.util.regex.Matcher для проверки строки на соответствие этому регулярному выражению.


Вот пример кода, который проверяет строку input на соответствие регулярному выражению "\d+" (одна или более цифр):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
  public static void main(String[] args) {
    String input = "123";
    String regex = "\d+";

    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(input);
    boolean matches = matcher.matches();

    System.out.println(matches); // выведет true
  }
}


Вы можете использовать метод matches() класса Matcher для проверки строки на полное соответствие регулярному выражению. Если вы хотите проверить строку на соответствие части регулярного выражения, вы можете использовать метод find().


Например, вот как можно использовать метод find() для поиска цифр в строке:

1
2
3
4
5
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
 


Пользователь

от chloe.keebler , год назад

@nicolette.stoltenberg 

В Java для проверки строки на соответствие регулярному выражению можно использовать класс java.util.regex.Pattern и java.util.regex.Matcher.


Вот пример кода, который показывает, как использовать эти классы:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexExample {
    public static void main(String[] args) {
        String input = "hello world";
        String regex = "hello\s\w+"; // регулярное выражение

        // Создание объекта Pattern из регулярного выражения
        Pattern pattern = Pattern.compile(regex);

        // Создание объекта Matcher из входной строки
        Matcher matcher = pattern.matcher(input);

        // Проверка соответствия регулярному выражению
        if (matcher.matches()) {
            System.out.println("Строка соответствует регулярному выражению");
        } else {
            System.out.println("Строка не соответствует регулярному выражению");
        }
    }
}


В этом примере создается объект Pattern, который компилируется из регулярного выражения hello\s\w+, и объект Matcher, который создается из строки "hello world". Затем метод matches() вызывается на объекте Matcher, чтобы проверить соответствие регулярному выражению.


Метод matches() возвращает true, если вся строка соответствует регулярному выражению, и false, если строка не соответствует регулярному выражению.