[Php-it] [OT regex] Un'altro caso di regex inadempiente...

Tassoman (mailing) ml at tassoman.com
Tue Nov 28 11:24:22 CET 2006


Ciao a tutti,
        eccoci ritrovati all'ennesimo appuntamento con le regex
inadempienti.

Secondo voi, come mai questo preg_replace perde 1 carattere all'inizio
di ogni riga?

preg_match('/^(\d{2})##[^I|#](.+)\|?$/', $riga, $vc)

La stringa sostanzialmente è questa:

01##praticamente tutto: parole numeri trattini punti, spazi, parentesi
return carriage, a volte finisce con |

Ci sono 2 eccezioni: quando ci sono 3 cancelletti dopo le prime due
cifre, e quando la parola inizia con I subito dopo i due cancelletti.

Se metto l'eccezione [^I|#] mi mangia 1 carattere negli altri casi.

-- 
Blogging humanum est, Tassoman ovest.
http://blog.tassoman.com



More information about the Php-it mailing list