Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Gartenautomation
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Deutsch
  • English
Menu

Arduino – reguläre Ausdrücke verwenden

Posted on 14. Dezember 202227. November 2022 by Stefan Draeger

In diesem Beitrag möchte ich dir zeigen, wie du mit regulären Ausdrücken Text auf dem Arduino prüfen kannst.

Arduino - reguläre Ausdrücke verwenden
Arduino – reguläre Ausdrücke verwenden

Mit regulären Ausdrücken kannst du Text auf eine bestimmte Syntax oder das Vorhandensein von Daten prüfen. Hierzu zählt zbsp. das Prüfen auf den korrekten Aufbau einer E-Mail, Telefonnummer etc. Man kann aber auch prüfen oder zählen, wie oft eine Zeichenkette in einem Text vorkommt.

Die regulären Ausdrücke sind manchmal sehr kompliziert und lassen sich auch ebenso gerade für Anfänger schwer lesen, hier hilft ein online-Tool wie https://regex101.com/ weiter, welcher dir beim Aufbau und Texten hilft.

Die Arduino IDE liefert per Default keine Funktionalität zum Ausführen von regulären Ausdrücken, hier müssen wir uns einer externen Bibliothek behelfen, welche wir über den Bibliotheksmanager installieren.

Bibliothek Regexp im Bibliotheksverwalter der Arduino IDE
Bibliothek Regexp im Bibliotheksverwalter der Arduino IDE

Der Entwickler hat im einen extra Forumeintrag unter https://forum.arduino.cc/t/new-regular-expression-library-released/59770 verfasst und dort die Funktionalität dieser Bibliothek beschrieben.

Achtung: Dieser Beitrag kann nicht alle RegEx behandeln, dafür gibt es einfach zu viele. Ich möchte mich hier auf einige wenige beschränken.

Aufbau eines regulären Ausdrucks

Ein regulärer Ausdruck muss einem bestimmten Format entsprechen. Wollen wir prüfen, ob ein Text mit einem bestimmten Buchstaben beginnt, so müssen wir das Zeichen ^ voranstellen.

Mit dem $ Zeichen am Ende stellen wir sicher, dass keine weiteren Zeichen mehr folgen sollen.

Um Buchstaben von einer bestimmten Range zu behandeln, schreibt man diese in eckigen Klammern. Somit ergibt sich zbsp. ein regulärer Ausdruck zum Prüfen auf den Namen Stefan.

^Stefan$

regulären Ausdruck (RegEx) am Arduino Nano

Wollen wir zunächst einen einfachen kleinen Text prüfen, ob in diesem Kleinbuchstaben von a bis z enthalten sind.

// Bibliothek für die funktionalität für reguläre Ausdrücke
#include <Regexp.h>

void setup() {
  // beginn der seriellen Kommunikation mit 9600 baud
  Serial.begin(9600);

  // der Text welcher geprüft werden soll
  char* text = "Test";

  // ein Matcher Objekt
  MatchState ms;
  // zuweisen des Zieles welches getestet werden soll
  ms.Target(text);
  
  // prüfen mit einem regulären Ausdruck,
  // es sollen klein Buchstaben von a bis z enthalten sein
  char result = ms.Match("[a-z]", 0);

  // Wenn der Text die Bedingung nicht erfüllt, dann...
  if (result == REGEXP_NOMATCH) {
    Serial.print("nicht ");
  } 
  Serial.println("OK"); 
}

void loop() {
  // bleibt leer
}

Der Code bewirkt, dass auf dem seriellen Monitor der Arduino IDE „OK“ ausgegeben wird.

Ausgabe der Prüfung mit RegEx am Arduino
Ausgabe der Prüfung mit RegEx am Arduino

Wenn man jetzt prüfen möchten, ob der Text gleich „Test“ ist, dann muss man den nachfolgenden regulären Ausdruck verwenden.

^Test$

prüfen eines Datums

Ein Datum gibt wiederum eine Besonderheit, denn dieses enthält einen Punkt, dieser Punkt steht im RegEx für ein beliebiges Zeichen, damit wir diesen Punkt jedoch als diesen behandeln können, muss dieser escaped werden. Den Punkt escaped man mit einem Backslash davor.

Nehmen wir das deutsche Datumsformat wie 01.12.2022, dann ergibt sich nachfolgender regulärer Ausdruck.

[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9][0-9]

Eigentlich gibt es für die Prüfung auf exakte Anzahl von Buchstaben oder Zahlen die Möglichkeit, mit geschweiften Klammern zu arbeiten, jedoch unterstützt diese Bibliothek es leider nicht.

[0-9]{2}\.[0-9]{2}\.[0-9]{4}

1 thought on “Arduino – reguläre Ausdrücke verwenden”

  1. Pingback: Franzis Adventskalender für Arduino - Tag 14 - Technik Blog

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen
Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

link zu Fabook
link zu LinkedIn
link zu YouTube
link zu TikTok
link zu Pinterest
link zu Instagram
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}