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|bcoincideix ambaob.(): 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 = "exemple@domini.com";
$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ó
