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

Método useAnchoringBounds () com exemplo em Java

a classe java.util.regex.Matcher representa o motor de execução de várias operações de matching. Esta classe não tem construtor, pode ser usadamatches()método da classe java.util.regex.Pattern cria/obtém o objeto deste tipo.

a borda de ancoragem é usada para matching de área, por exemplo ^ e $. Pelo padrão, o matcher usa a borda de ancoragem.

esta classedo métodouseAnchoringBounds()o método aceita um valor booleano, se true for passado para este método, o matcher atual usará a faixa de ancoragem; se false for passado para este método, será usada uma faixa não fixa.

exemplo1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Trail {
   public static void main( String args[] ) {
      //lê o valor da string
      Scanner sc = new Scanner(System.in);
      System.out.println("Insira a string de entrada");
      String input = sc.nextLine();
      //expressão regular para encontrar números
      String regex = ".*\\d+.*";
      //compila a expressão regular
      Pattern pattern = Pattern.compile(regex);
      //imprime a expressão regular
      System.out.println("Expressão regular compilada: "+pattern.toString());
      //pesquisa o objeto do matcher
      Matcher matcher = pattern.matcher(input);
      matcher.useAnchoringBounds(false);
      boolean hasBounds = matcher.hasAnchoringBounds();
      if(hasBounds) {
         System.out.println("Current matcher uses anchoring bounds");
      } else {
         System.out.println("Current matcher uses non-bounds de ancoragem");
      }
   }
}

Resultado de saída

Insira a string de entrada
sample
Expressão regular compilada: .*\d+.*
o matcher atual usa não-bounds de ancoragem

exemplo2

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Sample {
   public static void main( String args[] ) {
      String regex = "^<foo>.*";
      String input = "<foo><bar>";//Hi</i></br> welcome to w3codebox";
      Pattern pattern = Pattern.compile(regex);
      Matcher matcher = pattern.matcher(input);
      matcher = matcher.useAnchoringBounds(false);
      if(matcher.matches()) {
         System.out.println("Match found");
      } else {
         System.out.println("Match not found");
      }
      System.out.println("Has anchoring bounds:");+matcher.hasAnchoringBounds());
   }
}

Resultado de saída

Match found
Has anchoring bounds: false