On Sun, Dec 21, 2003 at 11:27:30AM +0100, Massimiliano Masserelli wrote:
> > esiste un modo per rappresentare, via regexp, una sequenza numerica che
> > non sia 0-9? Una cosa tipo "da 120 a 180", e senza specificare le
> > occorrenze?
> A meno di estensioni particolari del parser, no.
A voler esser pignoli, il modo esiste: (120|121|122|<eccetera>|180).
Questo per dire che le espressioni regolari sono abbastanza espressive
per riconoscere linguaggi definiti anche in termini di insiemi di
numeri.
Che sia comodo, perņ, questo no :)
In perl puoi ovviare costruendo la regexp in due passi:
1) my $numeri = '(?:'.join('|', (120..180)).')';
2) if (/(\w+)\s*=\s*($numeri)/) ...
Se la sequenza č lunga, ci mette un po' a compilarla, ma il match č
velocissimo. Magari usala col /../o (compile only once) se possibile.
Ciao,
Enrico
|