English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 aceptar5hasta12caracteres de la cadena, la expresión regular es-
"\\A(?=\\w{6,10}\\z)";
Por defecto, los límites de la región de coincidencia para el desplazamiento hacia adelante, hacia atrás y la coincidencia de borde son opacos, es decir, estas estructuras no pueden coincidir con el contenido del texto de entrada fuera de la región.-
Esta clasedel métodohasTransparentBounds()El método verifica si el comparador actual utiliza límites transparentes, si es así, devuelve true, de lo contrario devuelve false.
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class HasTransparentBounds { public static void main(String[] args) { //La expresión regular puede aceptar6hasta10caracteres String regex = "\\A(?=\\w{6,10}\\z)"; System.out.println("Enter 5 a 12 caracteres: "); String input = new Scanner(System.in).next(); //Crear un objeto de patrón Patrón patrón = Patrón.compile(regex); //Crear un objeto Matcher Matcher matcher = pattern.matcher(input); //Establecer la región en la cadena de entrada matcher.region(0, 4); if(matcher.find()) { System.out.println("Coincidencia encontrada"); } else { System.out.println("Coincidencia no encontrada"); } boolean bool = matcher.hasTransparentBounds(); //Cambiar a límites transparentes if(bool) { System.out.println("El matcher actual utiliza límites transparentes"); } else { System.out.println("El matcher actual utiliza límites transparentes");-límites transparentes"); } } }
Resultados de salida
Ingresar 5 a 12 caracteres: sampletext No se encontró coincidencia El comparador actual de usuario no-límites transparentes
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class HasTransparentBounds { public static void main(String[] args) { //La expresión regular puede aceptar6hasta10caracteres String regex = "\\A(?=\\w{6,10}\\z)"; System.out.println("Enter 5 a 12 caracteres: "); String input = new Scanner(System.in).next(); //Crear un objeto de patrón Patrón patrón = Patrón.compile(regex); //Crear un objeto Matcher Matcher matcher = pattern.matcher(input); //Establecer la región en la cadena de entrada matcher.region(0, 4); matcher.useTransparentBounds(true); if(matcher.find()) { System.out.println("Coincidencia encontrada"); } else { System.out.println("Coincidencia no encontrada"); } boolean bool = matcher.hasTransparentBounds(); //Cambiar a límites transparentes if(bool) { System.out.println("El matcher actual utiliza límites transparentes"); } else { System.out.println("El matcher actual utiliza límites transparentes");-límites transparentes"); } } }
Resultados de salida
Ingresar 5 a 12 caracteres: sampletext Coincidencia encontrada El matcher actual utiliza límites transparentes