Sep 18 2010
Altre espressioni regolari sconosciute ai più
Quando parliamo di espressioni regolari per semplicità ci riferiamo sempre ai soliti operatori noti: il più, il punto, l’asterisco, il backslash, le parentesi tonde. Ma il mondo delle regex, come dico sempre, è complesso in modo esponenziale. Ecco quattro operatori citati raramente che in futuro potrebbero aiutarvi a semplificare un po’ le vostre regular expression:
- parentesi graffe {}: servono a definire le ripetizioni, per cui (ahi){2} funzionerà solo per estrarre ahiahi. Si può anche definire un intervallo di ripetizioni, con la sintassi (ahi){3,6}. In questo caso andranno bene tra le tre e le sei ripetizioni di “ahi”
- \d: serve ad indicare qualsiasi cifra
- \s: serve ad indicare gli spazi (ma no, non si può usare in un filtro search and replace, mi dispiace), ma anche gli a capo e i tab
- \w: serve ad indicare qualsiasi carattere alfanumerico o l’underscore
Ovviamente il consiglio è sempre quello di testare il più possibile prima di mettere in produzione una regular expression: io consiglio sempre l’ottimo RegEx Designer di RadSoftware, ma la rete è piena di strumenti, anche online, per fare lo stesse mestiere. Alcuni dei più noti sono RegExr, RegexPal e il tester di regex.info.
Non vorrei sbagliarmi perche’ il maestro sei tu, ma gli indici di GA, come quelli di qualsiasi sistema C like, non sono zero-based?
Ovvero quando dici {3,6} non dovrebbe essere da un minimo di 2 ad un massimo di 5, proprio perche’ lo 0 fa numero?
non so in C, ma nelle regex l’indice è puntuale. Però perché GA dovrebbe essere C-like?
No, non so. Una volta avevo provato usato queste parentesi e mi sono ritrovato con una {3,6} che mi funzionava con un numero in meno per tutto. Non saprei cosa sia successo.