Sommario   Guida in linea MOBOTIX

Espressioni regolari

Questa pagina rappresenta solo una breve introduzione al concetto di espressioni regolari e non va considerata come esaustiva sull'argomento. Per ulteriori informazioni sull'argomento si consiglia di consultare l'opera Regular Expressions di Jeffrey E.F. Friedl, O'REILLY.

Le espressioni regolari sono schemi di ricerca utilizzabili per provare le stringhe. Ad esempio è possibile utilizzare un'espressione regolare per provare il testo di un messaggio IP o dei dati inviati tramite l'interfaccia seriale. Un'espressione regolare è formata da uno o più caratteri oggetto della ricerca e da caratteri speciali che svolgono determinate funzioni.

Esempio:

Una macchina invia dei dati tramite l'interfaccia seriale come nell'esempio:

[...]
2003-09-22 12:24:50 PM robots ready
2003-09-22 12:24:51 robots starting process
2003-09-22 12:25:25 robots finished in 34sec
2003-09-22 12:25:30 robots ready
2003-09-22 12:25:31 PM robots starting process
2003-09-22 12:25:33 error: no material found
2003-09-22 12:25:33 robots stop on error

L'espressione regolare stop.*error attiva un evento se la macchina restituisce un errore, come nell'ultima riga dell'esempio.


Caratteri speciali

Quando si cerca un carattere dalla colonna di sinistra della tabella sotto riportata, oppure la barra rovesciata "\" o il segno meno "-", farli precedere da una barra rovesciata "\". Questa procedura è detta masking.

Carattere Funzione
^ Il carattere ^ indica l'inizio di una stringa. L'espressione ^Test è vera solo per le stringhe che iniziano con Test.
$ Il carattere $ indica la fine di una stringa. L'espressione Test$ è vera solo per le stringhe che terminano con Test.
.

Il carattere punto funge da segnaposto per un carattere. L'espressione ab.d è vera per abcd e abad, ma non per abccd.

Per cercare il carattere . (punto) vero e proprio, effettuare il masking anteponendo una barra rovesciata "\". In questo caso l'espressione ab\.d è vera solo per ab.d.

* Il carattere asterisco verifica un numero illimitato di ripetizioni, compreso nessun carattere. L'espressione ab*c è vera per abc e abbbbbc, ma anche per ac.
+ Il carattere più (+) è un operatore simile e verifica la ripetizione (una volta o un numero illimitato di volte) del carattere che lo precede. L'espressione ab+c è vera per abc, abbbbbc, ma non per ac.
? Il punto interrogativo (?) indica che il carattere precedente può ripetersi una volta o mai. L'espressione ab?c è vera per abc e ac, ma non per abbc.
[ ]

L'espressione racchiusa tra [parentesi quadre] rappresenta una classe di caratteri.

Una classe di caratteri può essere definita come elenco o come intervallo. L'espressione [abc] rappresenta un elenco di caratteri, mentre [a-m] rappresenta un intervallo.

Ad esempio, [0-9] è vero per tutti i numeri, mentre [a-z] è vero per tutte le lettere minuscole. È possibile utilizzare diversi intervalli nell'ambito di una classe di caratteri, come [0-9a-zA-Z] oppure utilizzare elenchi e intervalli, come in [afm0-6].

Il segno di accento circonflesso "^" nega il significato della serie di caratteri che lo segue. L'espressione [^ab] è vera per tutti i caratteri diversi da a e da b.

cn, de, en, es, fr, it, jp

© 2001-2024
MOBOTIX AG, Germany · http://www.mobotix.com/