0Pricing
PHP Academy · Lezione

Corrispondenza con preg_match

Verificare le stringhe rispetto ai pattern e catturare i gruppi.

Corrispondenza con preg_match è una lezione PHP Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento PHP Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso PHP Academy include 4 lezioni in totale.

Firma di preg_match()

preg_match($pattern, $subject, &$matches) restituisce 1 se il pattern corrisponde, 0 se non corrisponde oppure false in caso di errore.

Test di corrispondenza semplice

Utilizzare preg_match come test booleano: il valore restituito 1 indica che è stata trovata una corrispondenza.

<?php
$email = "user@example.com";
if (preg_match('/\w+@\w+\.\w+/', $email)) {
    echo "Looks like an email";
}

Gruppi di cattura con $matches

$matches[0] è la corrispondenza completa; $matches[1], $matches[2] e così via sono i gruppi di cattura.

<?php
preg_match('/^(\w+)\s(\w+)$/', "John Smith", $m);
echo $m[1]; // "John"
echo $m[2]; // "Smith"

Catture denominate

Utilizzare (?P<name>...) per i gruppi di cattura denominati, accessibili come $matches["name"].

<?php
preg_match('/(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})/',
           '2025-06-15', $m);
echo $m['year'];  // 2025

Parametro offset

Il quarto parametro specifica il punto della stringa da cui iniziare la ricerca (offset in byte).

<?php
preg_match('/\d+/', 'abc123def456', $m, 0, 3);
echo $m[0]; // "123"

PREG_OFFSET_CAPTURE

Ottenere sia il valore della corrispondenza sia il relativo offset in byte.

<?php
preg_match('/\d+/', "price: 42 USD", $m, PREG_OFFSET_CAPTURE);
echo $m[0][0]; // "42"
echo $m[0][1]; // 7 (byte offset)

preg_match_all()

preg_match_all() trova tutte le corrispondenze e ne restituisce il numero.

<?php
$html = '<a href="a.com">A</a> <a href="b.com">B</a>';
preg_match_all('/<a href="([^"]+)">/', $html, $m);
print_r($m[1]); // ["a.com", "b.com"]

Esempio di convalida di un indirizzo email

Un pratico regex per gli indirizzi email:

<?php
function isEmail(string $s): bool {
    return (bool) preg_match(
        '/^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$/',
        $s
    );
}

Convalida di un numero di telefono

Convalidare i numeri di telefono internazionali:

<?php
preg_match('/^\+?[1-9]\d{7,14}$/', '+1234567890', $m);

Gestione degli errori

Se il pattern non è valido, preg_match() restituisce false. Verificare con === false e utilizzare preg_last_error() per i dettagli.

Suggerimento sulle prestazioni

PHP memorizza internamente nella cache i pattern PCRE compilati: se si utilizza la stessa regex in un ciclo, non sono necessari passaggi aggiuntivi.

Quando non utilizzare le regex

Per i dati strutturati, PHP dispone di funzioni dedicate: filter_var(FILTER_VALIDATE_EMAIL), parse_url(). Preferirle alle regex scritte manualmente.

Verifica rapida

Che cosa contiene $matches[0] dopo preg_match?

Domande Frequenti

La lezione «Corrispondenza con preg_match» è gratuita?

Sì — il testo completo di «Corrispondenza con preg_match» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso PHP Academy, passa a CoddyKit PRO. Il corso PHP Academy include 4 lezioni in totale.

Cosa imparerò in «Corrispondenza con preg_match»?

Verificare le stringhe rispetto ai pattern e catturare i gruppi. Eserciti PHP Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare PHP Academy?

Non è richiesta alcuna esperienza precedente. PHP Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Corrispondenza con preg_match»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione PHP Academy?

Sì. Ogni lezione PHP Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Fondamenti della sintassi regex
  2. Corrispondenza con preg_match
  3. Sostituzione del testo con preg_replace
  4. Divisione e pattern pratici
← Torna a PHP Academy