English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Метод hasAnchoringBounds() с примером в Java

Класс java.util.regex.Matcher представляет двигатель выполнения различных операций соответствия. Этот класс не имеет конструктора, объекты этого класса можно создать/получить с помощью метода matchs() класса java.util.regex.Pattern.

Привязанные границы используются для области соответствия, например, ^ и $. По умолчанию, matcher использует привязанные границы, вы можете использовать метод useAnchoringBounds() для переключения с привязанных границ на непривязанные.

Этот класс MatcherhasAnchoringBounds()Метод проверяет, использует ли текущий мatcher привязанные границы (если да), в противном случае возвращает true, в противном случае возвращает false.

Пример 1

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 использует привязку границ
Не найден соответствие

Пример 2

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 использует нефиксированные границы
Данная строка содержит цифры
Рекомендуем к просмотру