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

Método hasAnchoringBounds () 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 crear usando el método matchs() de la clase java.util.regex.Pattern/Obtener el objeto de esta clase.

Los límites de anclaje se utilizan para la coincidencia de áreas, por ejemplo ^ y $. Por defecto, el matcher utiliza el rango de anclaje, puede usar el método useAnchoringBounds() para cambiar de usar el rango de anclaje a no usarlo.

Esta clase (Matcher)hasAnchoringBounds()Método que verifica si el matcher utiliza límites de anclaje (si es así), de lo contrario devuelve true, de lo contrario devuelve false.

Ejemplo1

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HasAnchoringBoundsExample {
   public static void main(String[] args) {
      String regex = "(.*)(\\d+)(.*);
      String input = "Este es un texto de ejemplo" 1234, con números entre ellos.
         + "\nEste es la segunda línea en el texto"
         + "\nEsta es la tercera línea del texto";
      //Creando un objeto patrón
      Pattern pattern = Pattern.compile(regex);
      //Creando un objeto Matcher
      Matcher matcher = pattern.matcher(input);
      //Verificando límites de anclaje
      boolean bool = matcher.hasAnchoringBounds();
      //verificando la coincidencia
      if(bool) {
         System.out.println("El maridador actual utiliza amarrando límites");
      } else {
         System.out.println("El maridador actual utiliza no-amarrando límites");
      }
      if(matcher.matches()) {
         System.out.println("Coincidencia encontrada");
      } else {
         System.out.println("Coincidencia no encontrada");
      }
   }
}

Resultado de salida

El matcher actual utiliza límites de anclaje
Coincidencia no encontrada

Ejemplo2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Trail {
   public static void main(String args[]) {
      //Leyendo valor de cadena
      Scanner sc = new Scanner(System.in);
      System.out.println("Ingrese la cadena de entrada");
      String input = sc.nextLine();
      //Expresión regular para encontrar dígitos
      String regex = "."*\\d+.*";
      //Compilando la expresión regular
      Pattern pattern = Pattern.compile(regex);
      //Imprimiendo la expresión regular
      System.out.println("Expresión regular compilada: "+pattern.toString());
      //Obteniendo el objeto matcher
      Matcher matcher = pattern.matcher(input);
      matcher.useAnchoringBounds(false);
      boolean hasBounds = matcher.hasAnchoringBounds();
      if(hasBounds) {
         System.out.println("El maridador actual utiliza amarrando límites");
      } else {
         System.out.println("El maridador actual utiliza no-amarrando límites");
      }
      //verificando si ocurrió la coincidencia
      if(matcher.matches()) {
         System.out.println("La cadena dada contiene dígitos");
      } else {
         System.out.println("La cadena dada no contiene dígitos");
      }
   }
}

Resultado de salida

Ingrese la cadena de entrada
hello sample 2
Expresión regular compilada: .*\d+.*
El maridador actual utiliza no-amarrando límites
La cadena dada contiene dígitos