PDA

Visualizza la versione completa : problema pattern


jonny83
26-05-2006, 11:44
Ciao!

Dovrei ricercare in una stringa un pattern e sostituirlo con un altra stringa:

Es:
$stringa = "<TD ALIGN=LEFT>prova</TD> <TD ALIGN=RIGHT > dsafasdf</TD>";

Dovrei sostituire <TD ....> con <TD> in ogni ricorrenza della stringa:

Utilizzo : $stringa=~ s/<TD.*>/<TD>/g;

Dovrei cioč sostituire il pattern <TD qualcosa > con <TD>

Ma elimina tutto...


Come posso fare?

Mich_
26-05-2006, 11:57
Leggi attentamente cosa sta scritto nel man perlre:
By default, a quantified subpattern is "greedy", that is, it will match as many times as possible (given a particular starting location) while still allowing the rest of the pattern to match. If you want it to match the minimum number of times possible, follow the quantifier with a "?".


$stringa =~ s/\<TD.*?\>/\<td\>/gi;

PS: Alcuni caratteri nelle RE non ci possono stare, se non preceduti da blackslash.
PS2: Ho trasformato il tag in <td> (minuscolo), in quanto la versione maiuscola e` deprecata (vietata nelle DTD Strict).

jonny83
26-05-2006, 12:39
Originariamente inviato da Mich_
Leggi attentamente cosa sta scritto nel man perlre:


$stringa =~ s/\<TD.*?\>/\<td\>/gi;

PS: Alcuni caratteri nelle RE non ci possono stare, se non preceduti da blackslash.
PS2: Ho trasformato il tag in <td> (minuscolo), in quanto la versione maiuscola e` deprecata (vietata nelle DTD Strict).


Grazie Funziona!!

Loading