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

Método useTransparentBounds () con ejemplo en Java

La clase java.util.regex.Matcher representa el motor que ejecuta varias operaciones de coincidencia. Esta clase no tiene constructor, se puede usarmatches()El método create de la clase java.util.regex.Pattern/Obtener el objeto de esta clase.

En la expresión regular, las construcciones lookbehind y lookahead se utilizan para coincidir con patrones específicos antes o después de otros patrones. Por ejemplo, si necesita aceptar5a12una cadena de caracteres de-

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

Por defecto, los límites del área del matcher no son transparentes para la búsqueda hacia adelante, la búsqueda hacia atrás y la coincidencia de límites, es decir, estas construcciones no pueden coincidir con el contenido del texto de entrada que excede los límites del área.-

Ejemplo1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class useTransparentBoundsExample {
   public static void main(String[] args) {
      //La expresión regular puede aceptar6a10caracteres
      String regex = "\\A(?=\\w{6,10})";
      System.out.println("Entrar 5 a 12 caracteres: ");
      String input = new Scanner(System.in).next();
      //Crear un objeto patrón
      Pattern pattern = Pattern.compile(regex);
      //Crear un objeto Matcher
      Matcher matcher = pattern.matcher(input);
      //Establecer la región en la cadena de entrada
      matcher.region(0, 4);
      //Cambiar a rango transparente
      if(matcher.find()) {
         System.out.println("Coincidencia encontrada");
      } else {
         System.out.println("Coincidencia no encontrada");
      }
   }
}

Resultado de salida

Entrar 5 a 12 caracteres:
sampleText
No se encontró coincidencia

Esta claseEl métodouseTransparentBounds()El método acepta valores booleanos, si se pasa true a este método, el matcher actual utilizará un límite transparente, si se pasa false a este método, se utilizará un límite opaco.

Ejemplo2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
   public static void main(String[] args) {
      //La expresión regular puede aceptar6a10caracteres
      String regex = "\\A(?=\\w{6,10})";
      System.out.println("Entrar 5 a 12 caracteres: ");
      String input = new Scanner(System.in).next();
      //Crear un objeto patrón
      Pattern pattern = Pattern.compile(regex);
      //Crear un objeto Matcher
      Matcher matcher = pattern.matcher(input);
      //Establecer la región en la cadena de entrada
      matcher.region(0, 4);
      //Cambiar a rango transparente
      matcher = matcher.useTransparentBounds(true);
      if(matcher.find()) {
         System.out.println("Coincidencia encontrada");
      } else {
         System.out.println("Coincidencia no encontrada");
      }
   }
}

Resultado de salida

Entrar 5 a 12 caracteres:
textosample
Coincidencia encontrada