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

Фигурные скобки в регулярках Java

Операторы '+', '*', '?' хороши, однако, с их помощью нельзя указать конкретное число повторений. В этом случае вам на помощь придет оператор {}.

Работает он следующим образом: {5} - пять повторений, {2,5} – повторяется от двух до пяти (оба включительно), {2,} - повторяется два и более раз. Посмотрите примеры:

В данном примере шаблон поиска выглядит так: буква 'x', буква 'a' один или два раза, буква 'x':

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String txt = "xx xax xaax xaaax"; Pattern pattern = Pattern.compile("xa{1,2}x"); Matcher matcher = pattern.matcher(txt); String res = matcher.replaceAll("!"); System.out.println(res); } }

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

"xx ! ! xaaax"

В данном примере шаблон поиска выглядит так: буква 'x', буква 'a' два раза и более, буква 'x':

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

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

"xx xax ! !"

В данном примере шаблон поиска выглядит так: буква 'x', буква 'a' три раза, буква 'x':

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

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

"xx xax xaax !"

В данном примере шаблон поиска выглядит так: буква 'a' десять раз:

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

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

"aaa ! aaa"

В данном примере есть такой шаблон: буква 'x', буква 'a' три раза раза и меньше, буква 'x'. Для того, чтобы его реализовать, перед цифрой 3 можно не указывать число, а поставить просто запятую:

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

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

"! ! ! !"

Ноль перед 3 тоже допустим:

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String txt = "xx xax xaax xaaax"; Pattern pattern = Pattern.compile("xa{0,3}x"); Matcher matcher = pattern.matcher(txt); String res = matcher.replaceAll("!"); System.out.println(res); } }

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

"! ! ! !"

Дана строка:

public class Main { public static void main(String[] args) { String txt = "aa aba abba abbba abbbba abbbbba"; } }

Напишите регулярку, которая найдет строки 'abba', 'abbba', 'abbbba' и только их.

Дана строка:

public class Main { public static void main(String[] args) { String txt = "aa aba abba abbba abbbba abbbbba"; } }

Напишите регулярку, которая найдет строки вида 'aba', в которых 'b' встречается менее 3-х раз (включительно).

Дана строка:

public class Main { public static void main(String[] args) { String txt = "aa aba abba abbba abbbba abbbbba"; } }

Напишите регулярку, которая найдет строки вида 'aba', в которых 'b' встречается более 4-х раз (включительно).

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