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

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

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

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

классметодаuseAnchoringBounds()Метод принимает булево значение, если передать true этому методу, то текущий матчер будет использовать диапазон привязки; если передать false, то будет использоваться нефиксированный диапазон.

Пример 1

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 = pattern.matcher(input);
      matcher.useAnchoringBounds(false);
      boolean hasBounds = matcher.hasAnchoringBounds();
      if(hasBounds) {
         System.out.println("Текущий матчер использует фиксированные границы");
      }
         System.out.println("Текущий матчер использует нефиксированные границы");
      }
   }
}

Вывод результатов

Введите строку ввода
Пример
Скомпилированное регулярное выражение: .*\d+.*
Текущий матчер использует нефиксированные границы

Пример 2

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Sample {
   public static void main( String args[] ) {
      String regex = "^<foo>.*";
      String input = "<foo><bar>";//Hi</i></br> welcome to w3codebox";
      Pattern pattern = Pattern.compile(regex);
      Matcher matcher = pattern.matcher(input);
      matcher = matcher.useAnchoringBounds(false);
      if(matcher.matches()) {
         System.out.println("Match found");
      }
         System.out.println("Match not found");
      }
      System.out.println("Has anchoring bounds: " + matcher.hasAnchoringBounds());
   }
}

Вывод результатов

Match found
Has anchoring bounds: false
Рекомендуем к просмотру