Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpRgInr 57 of 322 menu
◀ ▶

Введение в регулярные выражения в Java

Регулярное выражение - это текстовый шаблон для поиска, проверки и замены фрагментов строки. В Java с шаблонами работают классы Pattern и Matcher из пакета java.util.regex. Шаблон получают вызовом Pattern.compile со строкой регулярки.

Шаблон состоит из обычных символов, которые совпадают сами с собой, и специальных символов - коротких команд вроде точки или звездочки. Специальные символы задают классы символов, повторения и границы текста.

Замену по шаблону выполняет метод replaceAll у Matcher: компилируют шаблон, создают Matcher для исходной строки и передают текст замены. Простейший пример выглядит так:

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { Pattern pattern = Pattern.compile("a"); Matcher matcher = pattern.matcher("bab"); String res = matcher.replaceAll("!"); System.out.println(res); } }

Результат выполнения кода:

b!b

Буквы и цифры в шаблоне обозначают те же символы в тексте. Заменим цифру 2 на "!":

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { Pattern pattern = Pattern.compile("2"); Matcher matcher = pattern.matcher("12abc3"); String res = matcher.replaceAll("!"); System.out.println(res); } }

Точка в шаблоне - специальный символ: она обозначает любой один символ. Найдем фрагмент по шаблону буква "x", любой символ, буква "x" и заменим его на "!":

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { Pattern pattern = Pattern.compile("x.x"); Matcher matcher = pattern.matcher("xax eee"); String res = matcher.replaceAll("!"); System.out.println(res); } }

Дана строка:

public class Main { public static void main(String[] args) { String txt = "ahb acb aeb aeeb adcb axeb"; } }

Напишите регулярку, которая найдет строки "ahb", "acb", "aeb" по шаблону: буква "a", любой символ, буква "b".

Дана строка:

public class Main { public static void main(String[] args) { String txt = "aba aca aea abba adca abea"; } }

Напишите регулярку, которая найдет строки "abba", "adca", "abea" по шаблону: буква "a", 2 любых символа, буква "a".

Дана строка:

public class Main { public static void main(String[] args) { String txt = "aba aca aea abba adca abea"; } }

Напишите регулярку, которая найдет строки "abba" и "abea", не захватив "adca".

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить