Pagina 1 di 1
Memorizzare in una variabile parte di una regex
Inviato: sab 7 giu 2008, 19:48
da mordecai
Ciao a tutti e rieccomi con un problemino in perl.
Come da oggetto ho la necessita di immagazzinare in una variabile,una parte di una espressione regolare.
Ad esempio:
Io voglio fare in modo che il contenuto di (\$.*) sia memorizzato in una variabile.È possibile farlo?
grazie
Re: Memorizzare in una variabile parte di una regex
Inviato: sab 7 giu 2008, 21:23
da cymon
La variabile $1 già contiene quello che cerchi, ma di solito è meglio non fidarsi visto che queste variabili vengono rigenerate ad ogni invocazione di regexp. Quindi un bel:
e ti porti tutto dove vuoi.
Ovviamente le variabili $2, $3, $4... (non ricordo fino a che limite) contengono quanto presente in tutte le altre parentesi tonde aperte.
In caso di regexp molto lunghe ricorda di contare tutte le tonde aperte (anche quelle magari utilizzate per dei caratteri in or (a|b) per capire dove è stato salvato quello che vuoi.
Re: Memorizzare in una variabile parte di una regex
Inviato: sab 7 giu 2008, 22:11
da mordecai
Grazie questa cosa non la sapevo proprio!

Re: Memorizzare in una variabile parte di una regex
Inviato: sab 7 giu 2008, 22:52
da cymon
mordecai ha scritto:Grazie questa cosa non la sapevo proprio!

Visto che ormai hai compreso l'illimitato potere delle regexp è ora che tu legga il
Mastering regular expression che è IL libro dell'informatico (uno dei primi cinque...)
Re: Memorizzare in una variabile parte di una regex
Inviato: sab 7 giu 2008, 23:37
da mordecai
Grazie ancora! [-o<
EDIT:e se proprio all'interno della regex voglio fare un riferimento ad una variabile?
Ad esempio:
Perchè non riesco in questo?