Domanda

Ho letto questo Pagina RegEx PHP, ma o mi manca qualcosa, ho letto male qualcosa, oppure non funziona come dicono.Immagino che sia uno dei primi due.

$str = preg_replace("([|]\d*)", "\1;", $str);
È stato utile?

Soluzione

La tua espressione regolare dovrebbe seguire la sintassi Perl, ovvero deve iniziare e finire con lo stesso carattere (con alcune eccezioni).Inoltre, il riferimento back dovrebbe iniziare con una doppia barra, per aggirare il doppio escape di PHP.Questo dovrebbe funzionare (con un test rapido):

$str = "asdfasdf |123123 asdf iakds |302 asdf |11";
$str = preg_replace("/([|]\d*)/", "\\1;", $str);
echo $str; // prints "asdfasdf |123123; asdf iakds |302; asdf |11;"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top