Esercitazione PHP

PHP HOME Introduzione a PHP Installazione PHP Sintassi PHP Commenti PHP Variabili PHP PHP Eco/Stampa Tipi di dati PHP Stringhe PHP Numeri PHP PHP matematica Costanti PHP Operatori PHP PHP Se...Altro...Altro Passaggio PHP Ciclo PHP Funzioni PHP Array PHP Superglobali PHP RegEx PHP

Moduli PHP

Gestione dei moduli PHP Convalida del modulo PHP Modulo PHP richiesto URL/e-mail del modulo PHP Modulo PHP completo

PHP avanzato

Data e ora PHP PHP Include Gestione dei file PHP Apri/Leggi file PHP Creazione/scrittura di file PHP Caricamento file PHP Cookie PHP Sessioni PHP Filtri PHP Filtri PHP avanzati Funzioni di callback PHP PHP JSON Eccezioni PHP

PHP OOP

PHP Che cos'è OOP Classi/Oggetti PHP Costruttore PHP PHP distruttore Modificatori di accesso PHP Ereditarietà PHP Costanti PHP Classi astratte PHP Interfacce PHP Tratti PHP Metodi statici PHP Proprietà statiche PHP Spazi dei nomi PHP Iterabili PHP

Database MySQL

Database MySQL MySQL Connect MySQL Crea DB MySQL Crea tabella Dati di inserimento MySQL MySQL Ottieni l'ultimo ID MySQL inserisce più MySQL preparato MySQL Seleziona dati MySQL dove MySQL Ordina per MySQL Elimina dati Dati di aggiornamento MySQL Dati limite MySQL

PHP XML

Parser XML PHP Analizzatore PHP SimpleXML PHP SimpleXML - Ottieni PHP XML espatriato PHP XML DOM

PHP - AJAX

Introduzione all'Ajax AJAX PHP Database AJAX XML AJAX Ricerca in tempo reale AJAX Sondaggio AJAX

Esempi PHP

Esempi PHP compilatore PHP Quiz PHP Esercizi PHP Certificato PHP

Riferimento PHP

Panoramica di PHP matrice PHP Calendario PHP Data PHP Directory PHP Errore PHP Eccezione PHP File system PHP Filtro PHP PHP FTP PHP JSON Parole chiave PHP PHP Libxml Posta PHP PHP matematica PHP Varie PHP MySQLi Rete PHP Controllo dell'output PHP RegEx PHP PHP SimpleXML Flusso PHP Stringa PHP Gestione delle variabili PHP Analizzatore XML PHP Zip PHP Fuso orario PHP

Espressioni regolari PHP


Che cos'è un'espressione regolare?

Un'espressione regolare è una sequenza di caratteri che forma un modello di ricerca. Quando cerchi dati in un testo, puoi utilizzare questo modello di ricerca per descrivere ciò che stai cercando.

Un'espressione regolare può essere un singolo carattere o un modello più complicato.

Le espressioni regolari possono essere utilizzate per eseguire tutti i tipi di operazioni di ricerca e sostituzione di testo.


Sintassi

In PHP, le espressioni regolari sono stringhe composte da delimitatori, un pattern e modificatori opzionali.

$exp = "/w3schools/i";

Nell'esempio sopra, /è il delimitatore , w3schools è il modello che viene cercato ed iè un modificatore che rende la ricerca senza distinzione tra maiuscole e minuscole.

Il delimitatore può essere qualsiasi carattere che non sia una lettera, un numero, una barra rovesciata o uno spazio. Il delimitatore più comune è la barra in avanti (/), ma quando il tuo modello contiene barre in avanti è conveniente scegliere altri delimitatori come # o ~.


Funzioni di espressione regolare

PHP fornisce una varietà di funzioni che consentono di utilizzare le espressioni regolari. Le funzioni preg_match(), preg_match_all()e preg_replace()sono alcune delle più comunemente utilizzate:

Function Description
preg_match() Returns 1 if the pattern was found in the string and 0 if not
preg_match_all() Returns the number of times the pattern was found in the string, which may also be 0
preg_replace() Returns a new string where matched patterns have been replaced with another string

Usando preg_match()

La preg_match()funzione ti dirà se una stringa contiene corrispondenze di un modello.

Esempio

Utilizzare un'espressione regolare per eseguire una ricerca senza distinzione tra maiuscole e minuscole per "w3schools" in una stringa:

<?php
$str = "Visit W3Schools";
$pattern = "/w3schools/i";
echo preg_match($pattern, $str); // Outputs 1
?>

Usando preg_match_all()

La preg_match_all()funzione ti dirà quante corrispondenze sono state trovate per un modello in una stringa.

Esempio

Utilizzare un'espressione regolare per eseguire un conteggio senza distinzione tra maiuscole e minuscole del numero di occorrenze di "ain" in una stringa:

<?php
$str = "The rain in SPAIN falls mainly on the plains.";
$pattern = "/ain/i";
echo preg_match_all($pattern, $str); // Outputs 4
?>

Usando preg_replace()

La preg_replace()funzione sostituirà tutte le corrispondenze del modello in una stringa con un'altra stringa.

Esempio

Utilizzare un'espressione regolare senza distinzione tra maiuscole e minuscole per sostituire Microsoft con W3Schools in una stringa:

<?php
$str = "Visit Microsoft!";
$pattern = "/microsoft/i";
echo preg_replace($pattern, "W3Schools", $str); // Outputs "Visit W3Schools!"
?>


Modificatori di espressioni regolari

I modificatori possono modificare il modo in cui viene eseguita una ricerca.

Modifier Description
i Performs a case-insensitive search
m Performs a multiline search (patterns that search for the beginning or end of a string will match the beginning or end of each line)
u Enables correct matching of UTF-8 encoded patterns

Modelli di espressioni regolari

Le parentesi vengono utilizzate per trovare un intervallo di caratteri:

Expression Description
[abc] Find one character from the options between the brackets
[^abc] Find any character NOT between the brackets
[0-9] Find one character from the range 0 to 9

Metacaratteri

I metacaratteri sono caratteri con un significato speciale:

Metacharacter Description
| Find a match for any one of the patterns separated by | as in: cat|dog|fish
. Find just one instance of any character
^ Finds a match as the beginning of a string as in: ^Hello
$ Finds a match at the end of the string as in: World$
\d Find a digit
\s Find a whitespace character
\b Find a match at the beginning of a word like this: \bWORD, or at the end of a word like this: WORD\b
\uxxxx Find the Unicode character specified by the hexadecimal number xxxx

Quantificatori

I quantificatori definiscono le quantità:

Quantifier Description
n+ Matches any string that contains at least one n
n* Matches any string that contains zero or more occurrences of n
n? Matches any string that contains zero or one occurrences of n
n{x} Matches any string that contains a sequence of X n's
n{x,y} Matches any string that contains a sequence of X to Y n's
n{x,} Matches any string that contains a sequence of at least X n's

Nota: se la tua espressione deve cercare uno dei caratteri speciali, puoi usare una barra rovesciata ( \ ) per evitarli. Ad esempio, per cercare uno o più punti interrogativi è possibile utilizzare la seguente espressione: $pattern = '/\?+/';


Raggruppamento

È possibile utilizzare le parentesi ( )per applicare quantificatori a interi pattern. Possono anche essere usati per selezionare parti del modello da utilizzare come corrispondenza.

Esempio

Usa il raggruppamento per cercare la parola "banana" cercando ba seguito da due istanze di na :

<?php
$str = "Apples and bananas.";
$pattern = "/ba(na){2}/i";
echo preg_match($pattern, $str); // Outputs 1
?>

Riferimento RegExp completo

Per un riferimento completo, vai al nostro Riferimento completo per le espressioni regolari di PHP .

Il riferimento contiene descrizioni ed esempi di tutte le funzioni di espressioni regolari.