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

Método hasTransparentBounds() com exemplo em Java

A classe java.util.regex.Matcher representa o motor que executa várias operações de correspondência. A classe não tem construtor, pode usarmatches()Método Pattern da classe java.util.regex.Pattern cria/Obter o objeto dessa classe.

Na expressão regular, as construções lookbehind e lookahead são usadas para corresponder a padrões específicos antes ou após outros padrões. Por exemplo, se você precisar aceitar5até12caracteres de string, então a expressão regular é-

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

Padrão, os limites da área de correspondência para frente, para trás e correspondência de limite são opacos, ou seja, essas estruturas não podem corresponder ao conteúdo de texto fora da área de correspondência.-

ClassemétodohasTransparentBounds()O método verifica se o matcher atual usa limites transparentes, se sim, retorna true, caso contrário, retorna false.

exemplo1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HasTransparentBounds {
   public static void main(String[] args) {
      //Expressões regulares que podem aceitar6até10caracteres
      String regex = \\"\\A(?=\\w{6,10}\\z)";
      System.out.println("Enter 5 até 12 caracteres: ");
      String input = new Scanner(System.in).next();
      //Criar um objeto de padrão
      Pattern pattern = Pattern.compile(regex);
      //Criar um objeto Matcher
      Matcher matcher = pattern.matcher(input);
      //Definir a área como a string de entrada
      matcher.region(0, 4);
      if(matcher.find()) {
         System.out.println("Encontrado");
      } else {
         System.out.println("Nenhum match encontrado");
      }
      boolean bool = matcher.hasTransparentBounds();
      //Mudar para faixa transparente
      if(bool) {
         System.out.println("O matcher atual usa limites transparentes");
      } else {
         System.out.println("O matcher atual usa limites transparentes");-limites transparentes");
      }
   }
}

Resultados de saída

Entrar 5 até 12 caracteres:
sampletext
Match not found
Current matcher user non-limite transparente

exemplo2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HasTransparentBounds {
   public static void main(String[] args) {
      //Expressões regulares que podem aceitar6até10caracteres
      String regex = \\"\\A(?=\\w{6,10}\\z)";
      System.out.println("Enter 5 até 12 caracteres: ");
      String input = new Scanner(System.in).next();
      //Criar um objeto de padrão
      Pattern pattern = Pattern.compile(regex);
      //Criar um objeto Matcher
      Matcher matcher = pattern.matcher(input);
      //Definir a área como a string de entrada
      matcher.region(0, 4);
      matcher.useTransparentBounds(true);
      if(matcher.find()) {
         System.out.println("Encontrado");
      } else {
         System.out.println("Nenhum match encontrado");
      }
      boolean bool = matcher.hasTransparentBounds();
      //Mudar para faixa transparente
      if(bool) {
         System.out.println("O matcher atual usa limites transparentes");
      } else {
         System.out.println("O matcher atual usa limites transparentes");-limites transparentes");
      }
   }
}

Resultados de saída

Entrar 5 até 12 caracteres:
sampletext
Encontrado
O matcher atual usa limites transparentes