Ciao, oggi mi ritrovo con questo problema.
Sto provando con una frase di questo genere:
Giuseppe Garibaldi è nato a Nizza il 4 luglio 1821, morto a Caprera il 2 giugno 1882
Con la frase così costruita riesco a sostituire o la prima o l'ultima occorrenza della data in questo modo:
Codice PHP:
$stringa = "Giuseppe Garibaldi è nato a Nizza il 4 luglio 1821, morto a Caprera il 2 giugno 1882";
//$pattern = '/[0-9]{4}$/';
$pattern = '/[0-9]{4}/';
$replacement = '1807';
$stringa_modificata = preg_replace($pattern, $replacement, $stringa, 1, $count);
echo "La stringa modificata<br />\n";
echo $stringa_modificata . "<br />\n";
echo "Effettuate " . $count . " sostituzioni<br />\n";
Ovviamente col pattern commentato sostituisco l'ultima occorrenza, mentre col pattern attivo sostituisco la prima.
Il problema della sostituzione dell'ultima occorrenza nasce se cambio la frase in
Codice PHP:
$stringa = "Giuseppe Garibaldi è nato a Nizza il 4 luglio 1821, il 2 giugno 1882 è morto a Caprera";
Ho trovato una discussione simile ed ho cercato di adattarla al mio scopo, Purtroppo non ci riesco.
Ho cercato di modificare il pattern in questa maniera
Codice PHP:
$pattern = '#[0-9]{4}(.*?)$#si';
ma non riesco a farla funzionare.
C'è un modo di farla funzionare con questa seconda frase?
Grazie per l'aiuto