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

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

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

В регулярных выражениях, lookbehind и lookahead структуры используются для совпадения с определенными шаблонами до или после других шаблонов. Например, если вам нужно принимать строку от 5 до 12 символов, регулярное выражение будет-

"\\A(?=\\w{6,10}\\z)";

По умолчанию, границы области совпадения для вперед, назад и границ совпадения не прозрачны, то есть эти структуры не могут совпадать с содержимым текста за пределами области совпадения-

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

Пример 1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HasTransparentBounds {
   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);
      //Create a Matcher object
      Matcher matcher = pattern.matcher(input);
      //Set the region to the input string
      matcher.region(0, 4);
      if(matcher.find()) {
         System.out.println("Match found");
      } else {
         System.out.println("Match not found");
      }
      boolean bool = matcher.hasTransparentBounds();
      //Switch to transparent range
      if(bool) {
         System.out.println("Current matcher uses transparent bounds");
      } else {
         System.out.println("Current matcher user non-transparent bound");
      }
   }
}

Output result

Enter 5 to 12 characters:
sampletext
Не найдено совпадение
Текущий мачер пользователь не прозрачные границы

Пример 2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HasTransparentBounds {
   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);
      //Create a Matcher object
      Matcher matcher = pattern.matcher(input);
      //Set the region to the input string
      matcher.region(0, 4);
      matcher.useTransparentBounds(true);
      if(matcher.find()) {
         System.out.println("Match found");
      } else {
         System.out.println("Match not found");
      }
      boolean bool = matcher.hasTransparentBounds();
      //Switch to transparent range
      if(bool) {
         System.out.println("Current matcher uses transparent bounds");
      } else {
         System.out.println("Current matcher user non-transparent bound");
      }
   }
}

Output result

Enter 5 to 12 characters:
sampletext
Match found
Current matcher uses transparent bounds
Вам может понравиться