English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Класс java.util.regex.Matcher представляет собой двигатель для выполнения различных операций соответствия. Этот класс не имеет конструктора, и его можно использоватьmatches()
Метод класса java.util.regex.Pattern создает/получает объект этого класса.
В регулярных выражениях, lookbehind и lookahead структуры используются для соответствия определенным шаблонам до или после других шаблонов. Например, если вам нужно принять строку из 5 до 12 символов, регулярное выражение будет-
"\\A(?=\\w{6,10}\\z)";
По умолчанию, границы области мачера для направленного вперед, направленного назад и границевого мачинга непрозрачны, то есть эти структуры не могут соответствовать вводимому тексту за пределами границ области-
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class useTransparentBoundsExample { public static void main(String[] args) {}} //Регулярное выражение принимает от 6 до 10 символов String regex = "\\A(?=\\w{6,10}\\z)"; System.out.println("Введите 5 до 12 символов:"); String input = new Scanner(System.in).next(); //Создание объекта шаблона Pattern pattern = Pattern.compile(regex); //Создание объекта Matcher Matcher matcher = pattern.matcher(input); //Установить область на входную строку matcher.region(0, 4); //Переключение на прозрачный диапазон if(matcher.find()) { System.out.println("Найдено совпадение"); } System.out.println("Найдено совпадение"); } } }
Результат вывода
Введите 5 до 12 символов: sampleText Не найден матч
этот классметодаuseTransparentBounds()Метод принимает булево значение, если передать true этому методу, то текущий мачер будет использовать прозрачные границы, если передать false, то будет использоваться непрозрачная область.
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example { public static void main(String[] args) {}} //Регулярное выражение принимает от 6 до 10 символов String regex = "\\A(?=\\w{6,10}\\z)"; System.out.println("Введите 5 до 12 символов:"); String input = new Scanner(System.in).next(); //Создание объекта шаблона Pattern pattern = Pattern.compile(regex); //Создание объекта Matcher Matcher matcher = pattern.matcher(input); //Установить область на входную строку matcher.region(0, 4); //Переключение на прозрачный диапазон matcher = matcher.useTransparentBounds(true); if(matcher.find()) { System.out.println("Найдено совпадение"); } System.out.println("Найдено совпадение"); } } }
Результат вывода
Введите 5 до 12 символов: sampletext Найдено совпадение