Pattern.matches în Java

Verifică într-un singur apel dacă tot textul respectă o expresie regulată (fără să păstrezi Pattern-ul).

Sintaxă
static boolean matches(String regex, CharSequence text)

Ce face Pattern.matches

Pattern.matches(regex, text) compilează modelul, îl aplică și returnează true doar dacă tot textul se potrivește, de la primul la ultimul caracter. Este echivalent cu Pattern.compile(regex).matcher(text).matches() și cu text.matches(regex).

Este comod pentru o verificare rapidă. Dacă verifici multe texte cu același model, compilează modelul o dată cu Pattern.compile și refolosește-l.

Parametri

Parametru Descriere
regex Modelul.
text Textul verificat în întregime.

Ce returnează

true dacă tot textul respectă modelul.

Exemple

Exemplul 1: Validarea unui cod poștal și a unui CNP (doar forma)

import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        System.out.println(Pattern.matches("\\d{6}", "700506"));
        System.out.println(Pattern.matches("\\d{6}", "70050"));
        System.out.println(Pattern.matches("[1-8]\\d{12}", "2990101123456"));
        System.out.println(Pattern.matches("[1-8]\\d{12}", "9990101123456"));
    }
}

Rezultat

true
false
true
false

Exemplul 2: Tot textul, nu doar o parte

matches cere ca modelul să acopere tot textul. Pentru „conține” folosește find() sau adaugă .* la capete.

import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        String text = "Comanda 2026 a fost livrată";
        System.out.println(Pattern.matches("\\d{4}", text));
        System.out.println(Pattern.matches(".*\\d{4}.*", text));
        System.out.println(Pattern.compile("\\d{4}").matcher(text).find());
    }
}

Rezultat

false
true
true

Greșeli frecvente

  • Aștepți true pentru un text care doar conține modelul. matches verifică tot textul.
  • Crezi că un regex validează complet un CNP sau un IBAN. Verifică doar forma; cifra de control trebuie calculată separat.

Comenzi înrudite

  • Pattern: O expresie regulată compilată; compile o pregătește o dată, matcher o aplică pe un text ca să cauți potriviri.
  • Matcher: Obiectul care aplică un Pattern pe un text; matches verifică dacă tot textul se potrivește cu modelul.
  • String.matches: Verifică dacă ÎNTREGUL șir se potrivește cu o expresie regulată (validare de formate).
  • Matcher.find: find caută următoarea potrivire în text; group returnează textul găsit sau doar partea dintr-un grup (paranteze).