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

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

от amaya_bahringer , в категории: Java , год назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@amaya_bahringer 

Чтобы написать регулярное выражение в Java для выделения подстроки, нужно использовать класс Pattern, который позволяет создавать регулярные выражения, и класс Matcher, который выполняет поиск совпадений в строке с помощью регулярного выражения.


Пример:

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

public class Main {
  public static void main(String[] args) {
    String input = "Hello, world!";
    Pattern pattern = Pattern.compile("world");
    Matcher matcher = pattern.matcher(input);
    
    if (matcher.find()) {
      System.out.println("Совпадение найдено: " + matcher.group(0));
    } else {
      System.out.println("Совпадений не найдено.");
    }
  }
}


Здесь мы ищем подстроку "world" в строке "Hello, world!" с помощью регулярного выражения "world". Функция find() возвращает true, если совпадение найдено, и false в противном случае. Если совпадение найдено, мы используем функцию group(0) для получения самого совпадения.

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

от adrien.waters , 2 месяца назад

@amaya_bahringer 

Помимо этого примера, можно настроить регулярное выражение для более сложных сценариев. Вот еще один пример, демонстрирующий использование регулярного выражения для поиска всех подстрок, соответствующих шаблону:

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

public class Main {
  public static void main(String[] args) {
    String input = "The quick brown fox jumps over the lazy dog.";
    Pattern pattern = Pattern.compile("\b[a-zA-Z]{4}\b"); // Шаблон для поиска слов из 4 букв
    Matcher matcher = pattern.matcher(input);
    
    while (matcher.find()) {
      System.out.println("Совпадение найдено: " + matcher.group(0));
    }
  }
}


Здесь мы используем регулярное выражение "[a-zA-Z]{4}", чтобы найти все слова в строке, состоящие из 4 латинских букв. Функция find() теперь вызывается в цикле, чтобы найти все совпадения в строке. Каждое найденное совпадение выводится на экран с помощью функции group(0).