Ho i seguenti dati di seguito dove {n}
rappresenta un segnaposto.Sostituire ogni istanza tra due caratteri
{n}{n}A{n}{n}A{n}
{n}A{n}{n}{n}{n}A
{n}{n}A{n}A{n}{n}
{n}{n}{n}A{n}A{n}B
{n}A{n}{n}B{n}{n}
A{n}B{n}{n}{n}{n}
desidero sostituire ogni istanza del segnaposto tra due lettere A con per esempio la lettera C
. Ho scritto il seguente regex per questo e sto usando la funzione preg_replace
.
$str = preg_replace('~(?<=A)(\{n\})*(?=A)~', 'C', $str);
Il problema è che sostituisce tutte le istanze tra due A di con un C
. Come posso correggere la mia espressione regolare o la chiamata preg_replace
per sostituire ogni singola istanza dei segnaposto con C
?
Questa dovrebbe essere la mia uscita.
{n}{n}ACCA{n}
{n}ACCCCA
{n}{n}ACA{n}{n}
{n}{n}{n}ACA{n}B
{n}A{n}{n}B{n}{n}
A{n}B{n}{n}{n}{n}
Ma attualmente emette questo.
{n}{n}ACA{n}
{n}ACA
{n}{n}ACA{n}{n}
{n}{n}{n}ACA{n}B
{n}A{n}{n}B{n}{n}
A{n}B{n}{n}{n}{n}
Cosa succede in questa situazione: 'A {n} A {n} A'? 'ACA {n} A' o' ACACA'? –