Arduino:
Utilizzo delle espressioni regolari
Come fare:
#include <regex.h>
const char *stringaTest = "Ciao, io sono il numero 12345";
regex_t regex;
int risultato;
void setup() {
Serial.begin(9600);
if (regcomp(®ex, "\\b\\d{5}\\b", REG_EXTENDED) == 0) { // Cerca 5 numeri consecutivi
Serial.println("Espressione regolare compilata correttamente.");
} else {
Serial.println("Errore nella compilazione dell'espressione regolare.");
}
risultato = regexec(®ex, stringaTest, 0, NULL, 0);
if (!risultato) {
Serial.println("Corrispondenza trovata!");
} else if (risultato == REG_NOMATCH) {
Serial.println("Nessuna corrispondenza trovata.");
} else {
Serial.println("Errore nell'esecuzione dell'espressione regolare.");
}
regfree(®ex);
}
void loop() {
// Esempio non richiede loop.
}
Output:
Espressione regolare compilata correttamente.
Corrispondenza trovata!
Approfondimento
Le espressioni regolari esistono fin dagli anni ‘50. In Arduino, la libreria <regex.h>
è spesso meno potente rispetto a linguaggi come Python o JavaScript. Come alternativa, le funzioni String
native possono essere usate per operazioni più semplici su stringhe. Per i microcontroller, l’implementazione di espressioni regolari deve essere leggera a causa delle limitate risorse hardware.