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

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

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

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

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

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

Пример 1

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, то будет использоваться непрозрачная область.

Пример 2

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
Найдено совпадение
Рекомендуем к просмотру