English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
A classe java.util.regex.Matcher representa o motor de execução de várias operações de coincidência. Esta classe não tem construtor, você pode usar o método matchs() da classe java.util.regex.Pattern para criar/Obter o objeto deste tipo.
Limites de ancoragem são usados para coincideções de área, por exemplo ^ e $. Por padrão, o matcher usa limites de ancoragem, você pode usar o método useAnchoringBounds() para alternar de uso de limites de ancoragem para não usar limites de ancoragem.
Classe Matcher destehasAnchoringBounds()Método verifica se o matcher atual usa limites de ancoragem (se sim), caso contrário retorna true, caso contrário retorna false.
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 é um exemplo de texto" 1234, com números entre. + "\nEste é a segunda linha no texto" + "\n This is third line in the text"; //Creating a pattern object Pattern pattern = Pattern.compile(regex); //Creating a Matcher object Matcher matcher = pattern.matcher(input); //Verifying for anchoring bounds boolean bool = matcher.hasAnchoringBounds(); //checking for the match if(bool) { System.out.println("Current matcher uses anchoring bounds"); } else { System.out.println("Current matcher uses non-anchoring bounds"); } if(matcher.matches()) { System.out.println("Match found"); } else { System.out.println("Match not found"); } } }
Resultado de saída
Current matcher uses anchoring bounds Match not found
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Trail { public static void main( String args[] ) { //Reading string value Scanner sc = new Scanner(System.in); System.out.println("Enter input string"); String input = sc.nextLine(); //Regular expression to find digits String regex = "."*\\d+.*"; //Compiling the regular expression Pattern pattern = Pattern.compile(regex); //Printing the regular expression System.out.println("Compiled regular expression: "+pattern.toString()); //Retrieving the matcher object 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-anchoring bounds"); } //verificando se ocorreu correspondência if(matcher.matches()) { System.out.println("Dado String contém dígitos"); } else { System.out.println("Dado String não contém dígitos"); } } }
Resultado de saída
Insira a string de entrada hello sample 2 Expressão regular compilada: .*\d+.* O matcher atual usa non-anchoring bounds Dado String contém dígitos