Logo Wand.Tools

Generatore di espressioni regolari

Genera e spiega intelligentemente le espressioni regolari, supporta vari pattern di corrispondenza comuni

Tutorial completo sulle espressioni regolari PHP (con esempi comuni) [Guida più completa 2025]

  # Tutorial completo sulle espressioni regolari PHP (con esempi comuni) [Guida più completa 2025]
  
  Le espressioni regolari (Regular Expressions) in PHP sono strumenti potenti per l'elaborazione delle stringhe. Questo tutorial fornirà una serie di esempi pratici di espressioni regolari PHP, che coprono esigenze di corrispondenza comuni come email, numeri di cellulare, URL, caratteri cinesi, tag HTML, ecc., aiutando gli sviluppatori a iniziare rapidamente a usare le regex in PHP.
  
  ## ✅ Panoramica delle funzioni di espressioni regolari (serie preg)
  
  ```php
  preg_match()      // Esegue una corrispondenza regex, restituisce il primo risultato di corrispondenza
  preg_match_all()  // Esegue una corrispondenza regex globale, restituisce tutti i risultati di corrispondenza
  preg_replace()    // Esegue la sostituzione regex
  preg_split()      // Divide una stringa usando un'espressione regolare
  preg_grep()       // Filtra un array in base a un'espressione regolare

📌 Espressioni regolari comuni ed esempi PHP

1️⃣ Corrispondenza di indirizzi email

$email = "[email protected]";
if (preg_match("/^[\w\-\.]+@([\w\-]+\.)+[a-zA-Z]{2,7}$/", $email)) {
    echo "Email valida";
}

2️⃣ Corrispondenza di numeri di cellulare (Cina continentale)

$mobile = "13812345678";
if (preg_match("/^1[3-9]\d{9}$/", $mobile)) {
    echo "Numero di cellulare valido";
}

3️⃣ Corrispondenza di indirizzi URL

$url = "https://www.example.com";
if (preg_match("/^(https?:\/\/)?([\w\-]+\.)+[a-zA-Z]{2,6}(\/\S*)?$/", $url)) {
    echo "URL valido";
}

4️⃣ Corrispondenza di indirizzi IP (IPv4)

$ip = "192.168.0.1";
if (preg_match("/^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$/", $ip)) {
    echo "IP valido";
}

5️⃣ Estrazione del contenuto testuale dai tag HTML

$html = "<p>Hello <strong>world</strong></p>";
preg_match_all("/<[^>]+>([^<]+)<\/[^>]+>/", $html, $matches);
print_r($matches[1]);

6️⃣ Corrispondenza di caratteri cinesi

$str = "你好world";
if (preg_match("/[\x{4e00}-\x{9fa5}]/u", $str)) {
    echo "Contiene caratteri cinesi";
}

7️⃣ Sostituzione di tutti i numeri con una stringa vuota

$str = "abc123def456";
$result = preg_replace("/\d+/", "", $str);
echo $result; // Output abcdef

8️⃣ Divisione di una stringa (per confine non alfabetico)

$str = "hello123world,php";
$parts = preg_split("/[^a-zA-Z]+/", $str);
print_r($parts);

🧠 Spiegazione dei modificatori Regex

Modificatore Descrizione
i Corrispondenza case-insensitive
m Modalità multilinea
s Modalità dotall (. corrisponde anche a newline)
u Supporta caratteri UTF-8
x Ignora gli spazi nel pattern

Utilizzo:

preg_match("/pattern/i", $str); // Corrispondenza case-insensitive

🔍 Consigli sull’uso delle espressioni regolari PHP

  • Utilizza preg_match_all per ottenere tutti i risultati di corrispondenza.
  • Utilizza preg_replace per l’elaborazione di sostituzione di stringhe in batch.
  • Per tutte le regex relative ai caratteri cinesi si consiglia di aggiungere il modificatore u.
  • I caratteri speciali nelle espressioni regolari devono essere sottoposti a escape, come ., *, ?, (, ), +, ecc.
  • Utilizza var_dump() per eseguire il debug dei risultati regex.