preg_replace în PHP

Înlocuiește toate potrivirile unei expresii regulate cu alt text.

Sintaxă
preg_replace(array|string $pattern, array|string $replacement, array|string $subject, int $limit = -1, &$count = null): array|string|null

Ce face preg_replace

preg_replace este varianta mai puternică a lui str_replace: în loc de un text fix, caută după un șablon. În textul de înlocuire poți folosi $1, $2… pentru grupurile din paranteze și $0 pentru întreaga potrivire.

Cu tablouri de șabloane și înlocuiri, face mai multe înlocuiri pe rând. $limit limitează numărul de înlocuiri pentru fiecare șablon, iar $count primește numărul total de înlocuiri.

Parametri

Parametru Descriere
$pattern Expresia regulată (sau un tablou de expresii).
$replacement Textul pus în loc. Poate folosi $1, $2, $0.
$subject Textul (sau tabloul de texte) în care se face înlocuirea.
$limit Opțional. Numărul maxim de înlocuiri. Implicit fără limită (-1).
$count Opțional. Variabilă în care se salvează numărul de înlocuiri.

Ce returnează

Textul nou sau null la eroare.

Exemple

Exemplul 1: Spații multiple reduse la unul singur

<?php
$text = "  Prea    multe   spații    aici  ";

var_dump(trim(preg_replace('/\s+/', " ", $text)));

Rezultat

string(23) "Prea multe spații aici"

Exemplul 2: Reordonarea unei date cu grupuri

<?php
echo preg_replace('/(\d{4})-(\d{2})-(\d{2})/', '$3.$2.$1', "Livrare: 2026-10-19");

Rezultat

Livrare: 19.10.2026

Exemplul 3: Slug pentru URL

<?php
$titlu = "Învață PHP: 10 funcții utile!";

$slug = strtr($titlu, ["ă" => "a", "â" => "a", "î" => "i", "ș" => "s", "ț" => "t", "Î" => "I"]);
$slug = strtolower($slug);
$slug = preg_replace('/[^a-z0-9]+/', "-", $slug);
echo trim($slug, "-");

Rezultat

invata-php-10-functii-utile

Greșeli frecvente

  • Scrii înlocuirea între ghilimele duble: "$1". PHP încearcă să interpreteze $1 ca variabilă. Folosește ghilimele simple: '$1'.
  • Folosești preg_replace pentru o înlocuire de text fix. str_replace este mai rapidă și mai ușor de citit.

Comenzi înrudite

  • preg_replace_callback: Înlocuiește potrivirile unei expresii regulate cu rezultatul unei funcții scrise de tine.
  • str_replace: Înlocuiește toate aparițiile unui text cu alt text.
  • preg_match: Verifică dacă un text se potrivește cu o expresie regulată și extrage prima potrivire.
  • strtr: Înlocuiește caractere sau texte după o listă de perechi, fără să înlocuiască de două ori același loc.