English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Класс java.util.regex.Matcher представляет двигатель выполнения различных операций соответствия. Этот класс не имеет конструктора, объекты этого класса можно создать/получить с помощью метода matchs() класса java.util.regex.Pattern.
Привязанные границы используются для области соответствия, например, ^ и $. По умолчанию, matcher использует привязанные границы, вы можете использовать метод useAnchoringBounds() для переключения с привязанных границ на непривязанные.
Этот класс MatcherhasAnchoringBounds()Метод проверяет, использует ли текущий мatcher привязанные границы (если да), в противном случае возвращает true, в противном случае возвращает false.
import java.util.regex.Matcher; import java.util.regex.Pattern; public class HasAnchoringBoundsExample { public static void main(String[] args) { String regex = \ String input = \ + "\n Эта вторая строка в тексте " + "\n Эта третья строка в тексте"; //Создание объекта шаблона Pattern pattern = Pattern.compile(regex); //Создание объекта Matcher Matcher matcher = pattern.matcher(input); //Проверка на привязку границ boolean bool = matcher.hasAnchoringBounds(); //Проверка на соответствие if(bool) { System.out.println("Текущий matcher использует фиксированные границы"); } System.out.println("Текущий matcher использует нефиксированные границы"); } if(matcher.matches()) { System.out.println("Найдено соответствие"); } System.out.println("Не найден соответствие"); } } }
Результат вывода
Текущий matcher использует привязку границ Не найден соответствие
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Trail { public static void main(String args[]) { //Чтение строкового значения Scanner sc = new Scanner(System.in); System.out.println("Введите строку ввода"); String input = sc.nextLine(); //Регулярное выражение для поиска чисел String regex = ".*\\d+.*"; //Скомпилирование регулярного выражения Pattern pattern = Pattern.compile(regex); //Вывод регулярного выражения System.out.println("Скомпилированное регулярное выражение: " + pattern.toString()); //Получение объекта matcher Matcher matcher = pattern.matcher(input); matcher.useAnchoringBounds(false); boolean hasBounds = matcher.hasAnchoringBounds(); if(hasBounds) {}} System.out.println("Текущий matcher использует фиксированные границы"); } System.out.println("Текущий matcher использует нефиксированные границы"); } //проверка на наличие совпадения if(matcher.matches()) { System.out.println("Данная строка содержит цифры"); } System.out.println("Данная строка не содержит цифр"); } } }
Результат вывода
Введите строку ввода hello sample 2 Скомпилированное регулярное выражение: .*\d+.* Текущий мatcher использует нефиксированные границы Данная строка содержит цифры