Les expressions regulars (regex) són una eina potent per a la manipulació de cadenes de text. Permeten buscar, coincidir i manipular patrons de text de manera eficient. En aquest tema, aprendrem els conceptes bàsics de les expressions regulars en PHP, com utilitzar-les i alguns exemples pràctics.
Conceptes Bàsics
Què és una Expressió Regular?
Una expressió regular és una seqüència de caràcters que defineix un patró de cerca. Aquest patró es pot utilitzar per a diverses operacions com la cerca, substitució i validació de cadenes de text.
Sintaxi Bàsica
Les expressions regulars utilitzen una sintaxi específica per definir els patrons. A continuació es mostren alguns dels elements bàsics:
.
: Coincideix amb qualsevol caràcter excepte el salt de línia.^
: Coincideix amb el començament de la cadena.$
: Coincideix amb el final de la cadena.*
: Coincideix amb zero o més repeticions del caràcter anterior.+
: Coincideix amb una o més repeticions del caràcter anterior.?
: Coincideix amb zero o una repetició del caràcter anterior.[]
: Defineix una classe de caràcters. Per exemple,[a-z]
coincideix amb qualsevol lletra minúscula.|
: Actua com un operador OR. Per exemple,a|b
coincideix amba
ob
.()
: Agrupa una part de l'expressió regular.
Funcions de PHP per a Expressions Regulars
PHP proporciona diverses funcions per treballar amb expressions regulars. Les més comunes són:
preg_match()
: Cerca una coincidència en una cadena.preg_match_all()
: Cerca totes les coincidències en una cadena.preg_replace()
: Substitueix coincidències en una cadena.preg_split()
: Divideix una cadena en un array utilitzant una expressió regular com a delimitador.
preg_match()
Aquesta funció cerca una coincidència en una cadena i retorna true
si es troba una coincidència, false
en cas contrari.
$pattern = "/^hello/"; $string = "hello world"; if (preg_match($pattern, $string)) { echo "Coincidència trobada!"; } else { echo "No s'ha trobat cap coincidència."; }
preg_match_all()
Aquesta funció cerca totes les coincidències en una cadena i les retorna en un array.
$pattern = "/\d+/"; $string = "Hi ha 3 gats i 4 gossos."; preg_match_all($pattern, $string, $matches); print_r($matches);
preg_replace()
Aquesta funció substitueix les coincidències en una cadena amb una altra cadena.
$pattern = "/gats/"; $replacement = "gossos"; $string = "Hi ha 3 gats i 4 gossos."; $new_string = preg_replace($pattern, $replacement, $string); echo $new_string;
preg_split()
Aquesta funció divideix una cadena en un array utilitzant una expressió regular com a delimitador.
$pattern = "/\s+/"; $string = "Això és una prova."; $parts = preg_split($pattern, $string); print_r($parts);
Exemples Pràctics
Validació d'un Correu Electrònic
Podem utilitzar expressions regulars per validar un correu electrònic.
$email = "[email protected]"; $pattern = "/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/"; if (preg_match($pattern, $email)) { echo "Correu electrònic vàlid."; } else { echo "Correu electrònic invàlid."; }
Extracció de Números de Telèfon
Podem utilitzar expressions regulars per extreure números de telèfon d'una cadena.
$text = "El meu número és 123-456-7890 i el seu és 987-654-3210."; $pattern = "/\d{3}-\d{3}-\d{4}/"; preg_match_all($pattern, $text, $matches); print_r($matches);
Exercicis Pràctics
Exercici 1: Validació de Noms d'Usuari
Escriu una expressió regular per validar noms d'usuari que compleixin les següents condicions:
- Només poden contenir lletres, números i guions baixos.
- Han de tenir entre 3 i 16 caràcters.
$username = "usuari_exemple"; $pattern = "/^[a-zA-Z0-9_]{3,16}$/"; if (preg_match($pattern, $username)) { echo "Nom d'usuari vàlid."; } else { echo "Nom d'usuari invàlid."; }
Exercici 2: Substitució de Paraules
Escriu un script que substitueixi totes les ocurrències de la paraula "gats" per "gossos" en una cadena.
$text = "Hi ha molts gats en aquest barri. Els gats són molt comuns aquí."; $pattern = "/gats/"; $replacement = "gossos"; $new_text = preg_replace($pattern, $replacement, $text); echo $new_text;
Resum
En aquesta secció, hem après els conceptes bàsics de les expressions regulars i com utilitzar-les en PHP. Hem vist com cercar, substituir i dividir cadenes utilitzant funcions com preg_match()
, preg_match_all()
, preg_replace()
i preg_split()
. També hem treballat amb alguns exemples pràctics i exercicis per reforçar els conceptes apresos. Les expressions regulars són una eina molt potent i versàtil que pot simplificar moltes tasques de manipulació de text en els teus projectes PHP.
Curs de Programació PHP
Mòdul 1: Introducció a PHP
- Què és PHP?
- Configuració de l'Entorn de Desenvolupament
- El teu Primer Script PHP
- Sintaxi i Variables de PHP
- Tipus de Dades en PHP
Mòdul 2: Estructures de Control
Mòdul 3: Funcions
- Definició i Crida de Funcions
- Paràmetres de Funció i Valors de Retorn
- Àmbit de Variables
- Funcions Anònimes i Closures
Mòdul 4: Arrays
Mòdul 5: Treballant amb Formularis
Mòdul 6: Treballant amb Fitxers
- Lectura i Escriptura de Fitxers
- Funcions de Gestió de Fitxers
- Permisos de Fitxers
- Funcions de Directori
Mòdul 7: Programació Orientada a Objectes (OOP)
- Introducció a OOP
- Classes i Objectes
- Propietats i Mètodes
- Herència
- Interfícies i Classes Abstractes
- Traits
Mòdul 8: Treballant amb Bases de Dades
- Introducció a les Bases de Dades
- Connexió a una Base de Dades MySQL
- Realització d'Operacions CRUD
- Ús de PDO per a la Interacció amb Bases de Dades
- Seguretat en Bases de Dades
Mòdul 9: Tècniques Avançades de PHP
- Gestió d'Errors i Excepcions
- Sessions i Cookies
- Expressions Regulars
- Treballant amb JSON i XML
- PHP i Serveis Web
Mòdul 10: Frameworks PHP i Millors Pràctiques
- Introducció als Frameworks PHP
- Començant amb Laravel
- Arquitectura MVC
- Millors Pràctiques en Desenvolupament PHP
- Proves i Depuració