Sembra e dico sembra che ce l'ho fatta.
Allora una regexp che fa quel che voglio l'ho trovata, ma c'è qualcosa di strano nel preg_replace:
Codice PHP:
$stringa = "ciao questa è una parola; seguita dai due punti";
$parola = "parola";
$regex = "/[^A-Za-z0-9]".$parola."[^A-Za-z0-9]/i";
$substitution = "[b] ".$parola." [/b]";
preg_replace($regex, $substitution, $stringa);
//il risultato è
//ciao questa è una[b]parola[/b]seguida dai due punti
Ora, come vedete prima di "parola" il grep (si chiama così?) ha intercettato uno spazio, e dopo "parola" ha intercettato un punto e virgola. Nella sostituzione però queste cose le ha eliminate.
Io vorrei che il risultato finale fosse:
codice:
Ciao questa è una parola; seguida dai due punti
Ovvero che mi mantenesse ciò che trova (uno spazio e un punto-e-virgola) con [^A-Za-z0-9], senza sostituirlo. Credo di dover cambiare qualcosa in $substitution, ma cosa?
Spero di essermi spiegato... e spero ci sia chi mi aiuta