[ruby-it] ricerca testo.

Gendag gendag a gmail.com
Mer 4 Apr 2007 09:57:14 CEST


Mauro Sanna wrote:
>> /(?:(?:<(.*?@.*?)>)|\(\?\)) -> <(.*?@.*?)>/
> 
> In effetti ci avevo gia' provato, avevo fatto questo 
> /<(.*?@.*?)>)|\(\?\) -> <(.*?@.*?)>/ ma non mi funzionava.
> Perche' quei (?:(?: iniziali?

Esistono due tipi di parantesi per raggruppare porzioni di
regexp:
1. le parentesi normali, per esempio quelle in "(.*?@.*?)" creano
una back reference, cioe' quella porzione di regexp puo':
     a. essere ripetuta in altre parti della regexp usando \1, \2, 		 
     \3, ecc...
     b. essere acceduta dall'esterno tramite le variabili $1, $2,
        $3, ecc... o se usi un oggetto MatchData m, tramite m[1], m[2],
        m[3], ecc...

2. le parentesi (?: regexp ), per esempio quelle in "(?:<(.*?@.*?)>)",
permettono di raggruppare le porzioni di regexp senza creare back 
reference. Le ho tuilizzate, cosi' posso raggruppare parti di regexp
ma esistono sempre e solo due back reference agli indirizzi e-mail
da estrarre.

ciao!

Gendag


Maggiori informazioni sulla lista Ml