Scripting

Regex - Reguläre Ausdrücke

Reguläre Ausdrücke, allgemein als RegEx (Englisch: Regular Expression)bezeichnet, sind leistungsstarke Werkzeuge für den Pattern-Vergleich und die Textmanipulation. Im Peakboard Designer kannst du RegEx in Lua-Skripten verwenden, um Daten aus Datenquellen oder Benutzereingaben zu extrahieren, zu validieren oder zu manipulieren.

Laden der Lua-Patterns-Bibliothek

Lua bietet eine Pattern-Matching-Bibliothek, die die Verwendung von RegEx-ähnlichen Pattern zur Stringmanipulation ermöglicht. Diese Bibliothek ist standardmäßig geladen, so dass du keine zusätzlichen Pakete installieren musst, um mit RegEx in Lua zu arbeiten.

Um die Pattern-Bibliothek zu verwenden, kannst du direkt die von Lua bereitgestellten Pattern-Matching-Funktionen aufrufen.

Eine Schnellreferenz für reguläre Ausdrücke findest du online beispielsweise auf regular-expressions.info oder vielen weiteren, ähnlichen Seiten.

Musterabgleich mit string.match()

Die Funktion string.match() ermöglicht es dir, das erste Vorkommen eines Pattern in einem String zu finden. Sie gibt den übereinstimmenden Teilstring als Ergebnis zurück.

Syntax:

local matchedText = string.match(inputString, pattern)

Beispiel:

local text = "Hello, Lua!"
local pattern = "Hello"
local matchedText = string.match(text, pattern)
print(matchedText) -- Ausgabe: "Hello"

In diesem Beispiel wird das Pattern Hello in der Zeichenkette gefunden, und der gefundene Text Hello wird zurückgegeben.

Alle Übereinstimmungen mit string.gmatch() finden

Die Funktion string.gmatch() kannst du verwenden, um durch alle Vorkommen eines Pattern in einem String zu iterieren. Sie gibt eine Iteratorfunktion zurück, die du in einer Schleife verwenden kannst, um alle Übereinstimmungen zu finden.

Syntax:

for matchedText in string.gmatch(inputString, pattern) do
    -- Codeblock, der für jede Übereinstimmung ausgeführt wird
end

Beispiel:

local text = "1, 2, 3, 4, 5"
local pattern = "%d+"
for matchedNumber in string.gmatch(text, pattern) do
    print(matchedNumber)
end

Die Ausgabe wird sein:

1
2
3
4
5

In diesem Beispiel stimmt das Pattern %d+ mit einer oder mehreren Ziffern (%d) in dem String überein, und jede übereinstimmende Zahl wird in der Schleife ausgegeben.

Ersetzen von Pattern mit string.gsub()

Mit der Funktion string.gsub() kannst du alle Vorkommen eines Pattern in einem String durch eine von dir bestimmten Ersatztext austauschen.

Syntax:

local replacedText = string.gsub(inputString, pattern, replacement)

Beispiel:

local text = "The quick brown fox"
local muster = "fox"
local ersatz = "dog"
local replacedText = string.gsub(text, pattern, replacement)
print(replacedText) -- Ausgabe: "The quick brown dog"

In diesem Beispiel werden alle Vorkommen des Patterns fox durch den Ersatztext dog ersetzt.

Verwendung von Erfassungsgruppen

Erfassungsgruppen sind eine leistungsstarke Funktion von RegEx, mit der du bestimmte Teile eines übereinstimmenden Musters extrahieren kannst. Du kannst Klammern () verwenden, um Erfassungsgruppen in deinen Patterns zu erstellen.

Beispiel:

local text = "Name: John, Age: 30"
local pattern = "Name: (%a+), Age: (%d+)"
local name, age = string.match(text, pattern)
print("Name: " .. name) -- Ausgabe: "Name: John"
print("Age: " .. Age) -- Ausgabe: "Age: 30"

In diesem Beispiel erfasst das Pattern “Name: (%a+), Age: (%d+)” den Namen und das Alter aus dem Eingabetext.

Auskommentieren von Sonderzeichen

Bei der Arbeit mit RegEx haben einige Zeichen eine besondere Bedeutung. Wenn du diese Zeichen wörtlich abgleichen willst, musst du sie mit einem Backslash \\ auskommentieren.

Beispiel:

local text = "The price is $10"
local pattern = "%$%d+"
local matchedPrice = string.match(text, pattern)
print(matchedPrice) -- Ausgabe: "$10"

In diesem Beispiel ist das Dollarzeichen $ ein Sonderzeichen in RegEx, so dass du es mit einem Backslash \\ auskommentieren musst, damit es wörtlich übereinstimmt.

Wir lernen von dir!

Hat dir dieser artikel geholfen?

Lass dich erleuchten!

Du benötigst weitere unterstützung?

Peakboard Youtube icon Zum YouTube Kanal

Unsere zahlreichen Videos für Einsteiger und Fortgeschrittene erklären dir genau, wie du dein Dashboard gestaltest.

Peakboard Templates icon Zu den Peakboard Templates

Lade dir unsere Templates für die verschiedensten Anwendungsfälle kostenlos herunter.

Peakboard icon Zu www.peakboard.com

Auf unserer Website findest du alle wichtigen Infos zu Peakboard sowie verschiedene Anwendungsfälle und Success Stories.