[Php-it] [OT regex] Un'altro caso di regex inadempiente...
Domenico L.
domenico.lorusso at pleiade.it
Tue Nov 28 16:55:26 CET 2006
Cristiano Verondini ha scritto:
>
>>> Multiline: il ^ e il $ fanno match per ogni riga (delimitata da
>>> CR) Dot match all: il . fa match anche con l'andata a capo
>>>
>> questo lo so ed è in questo modo che voglio usarle... cosa sbaglio?
>
> Ho perso i messaggi precedenti, per cui non ricordo la RE, ma mi
> sembra che tu volessi fare match su più righe.
>
> Cris
>
$testo='ciao|
miao§
Maus
ciaps
';
preg_match_all('/([^|]+)\|?/m',$testo,$ar); print_r($ar); => otteniamo
il risultato voluto
preg_match_all('/([^|]+)\|?$/m',$testo,$ar); print_r($ar);=> ci tronca
tutta la prima riga fino al carattere \n
Allora nella prima mi aspetto che cerchi qualcosa di diverso da | un o
zero | e (siccome è avido) un qualcosa di diverso da |
ottengo questo:
# array[2] 0=>::----Begin_
# string[5] 0=>ciao|
# string[23] 1=>
miao§
Maus
ciaps
--------------::0::--------enD|
# array[2] 1=>::----Begin_
# string[4] 0=>ciao
# string[23] 1=>
miao§
Maus
ciaps
--------------::1::--------enD|
Nella seconda mi aspetterei di riapplicare il controllo dicendo che
cerco di trovare una o zero pipe e un ritorno a capo.... ottengo questo:
# array[1] 0=>::----Begin_
# string[23] 0=>
miao§
Maus
ciaps
--------------::0::--------enD|
# array[1] 1=>::----Begin_
# string[23] 0=>
miao§
Maus
ciaps
--------------::1::--------enD|
Ora se mi spiegate dove si verifica il problema sarei felice :-)
--
Domenico L. icq: 645 44 861
per stupire mezz'ora basta un libro di storia,
io cercai di imparare la Treccani a memoria... [F.d.A.]
More information about the Php-it
mailing list