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

Método useTransparentBounds() com exemplo em Java

A classe java.util.regex.Matcher representa o motor que executa várias operações de coincidência. Esta classe não possui construtor, pode ser usadamatches()O método create da classe java.util.regex.Pattern/Obter o objeto deste tipo.

Na expressão regular, as constructs lookbehind e lookahead são usadas para coincidir com padrões específicos antes ou após outros padrões. Por exemplo, se você precisar aceitar5até12uma string de caracteres, a expressão regular será-

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

Por padrão, os limites da área do matcher são opacos para construct向前看,向后看和边界匹配, isso significa que essas constructs não podem coincidir com o conteúdo do texto de entrada que está fora dos limites da área.-

Exemplo1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class useTransparentBoundsExample {
   public static void main(String[] args) {
      //A expressão regular pode aceitar6até10caracteres
      String regex = "\\A(?=\\w{6,10}
      System.out.println("Entrar 5 até 12 caracteres: ");
      String input = new Scanner(System.in).next();
      //Criar um objeto Pattern
      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);
      //Mudar para o limite transparente
      if(matcher.find()) {
         System.out.println("Encontrado");
      } else {
         System.out.println("Encontrado");
      }
   }
}

Resultados de saída

Entrar 5 até 12 caracteres:
sampleText
Match não encontrado

Esta classeO métodouseTransparentBounds()O método aceita valores booleanos, se true for passado para este método, o matcher atual usará faixas transparentes, se false for passado para este método, usará faixas opacas.

Exemplo2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
   public static void main(String[] args) {
      //A expressão regular pode aceitar6até10caracteres
      String regex = "\\A(?=\\w{6,10}
      System.out.println("Entrar 5 até 12 caracteres: ");
      String input = new Scanner(System.in).next();
      //Criar um objeto Pattern
      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);
      //Mudar para o limite transparente
      matcher = matcher.useTransparentBounds(true);
      if(matcher.find()) {
         System.out.println("Encontrado");
      } else {
         System.out.println("Encontrado");
      }
   }
}

Resultados de saída

Entrar 5 até 12 caracteres:
sampletext
Encontrado