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 amb a o b.
  • () : 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

Mòdul 2: Estructures de Control

Mòdul 3: Funcions

Mòdul 4: Arrays

Mòdul 5: Treballant amb Formularis

Mòdul 6: Treballant amb Fitxers

Mòdul 7: Programació Orientada a Objectes (OOP)

Mòdul 8: Treballant amb Bases de Dades

Mòdul 9: Tècniques Avançades de PHP

Mòdul 10: Frameworks PHP i Millors Pràctiques

Mòdul 11: Projecte: Construint una Aplicació Web

© Copyright 2024. Tots els drets reservats