Stellen Sie sich Folgendes vor: Sie sind ein furchtloser Datenforscher, der sich tief in die ungezähmte Wildnis der Rohdaten vorwagt. Ausgestattet mit Ihrer zuverlässigen Tabellenkalkulation und einer Tasse Kaffee begeben Sie sich auf die Suche nach aussagekräftigen Erkenntnissen. Aber leider stoßen Sie auf einen Dschungel aus inkonsistenten Formatierungen, kryptischen Symbolen und Tippfehlern, die ein Eigenleben zu führen scheinen. Fürchte dich nicht, unerschrockener Datenkämpfer, denn in diesem chaotischen Reich wartet eine Geheimwaffe: reguläre Ausdrücke , der Superhelden-Umhang der Datenbereinigung.
Was ist ein regulärer Ausdruck?
Im Kern ist ein regulärer Ausdruck, allgemein bekannt als Regex , eine leistungsstarke Zeichenfolge, die ein Suchmuster definiert. Es ist ein vielseitiges Werkzeug, das in verschiedenen Programmiersprachen und Texteditoren verwendet wird, um Textzeichenfolgen basierend auf bestimmten Mustern oder Regeln zu bearbeiten und abzugleichen . Mit regulären Ausdrücken können Sie komplexe Suchmuster prägnant ausdrücken und so das Auffinden, Extrahieren oder Ändern bestimmter Teile von Textdaten erleichtern. Durch die Kombination von Zeichen, Metazeichen und Quantoren können Sie Regex-Muster erstellen, die bestimmten Sequenzen, Zeichen oder sogar komplexeren Strukturen innerhalb eines größeren Textkörpers entsprechen. Aufgrund ihrer vielfältigen Anwendungsmöglichkeiten sind reguläre Ausdrücke zu einer unschätzbar wertvollen Ressource für Datenbereinigung, Textverarbeitung und Mustererkennungsaufgaben geworden.
Regex in JMP
In JMP können reguläre Ausdrücke über das rote Dreieck unter Text Explorer > Parsing-Optionen > Regex anpassen aufgerufen und angepasst werden. Es stehen mehrere reguläre Ausdrücke zur Verfügung, beispielsweise der HTML Link Grabber und der Numbers- Highlighter.

Sie können darin reguläre Ausdrücke anpassenJMP.
Obwohl die integrierten Ausdrücke nützlich sind, kann die Datenbereinigung individuellere Ausdrücke erfordern, die besser zum Datensatz passen. Schauen wir uns ein einfaches Beispiel an, etwa das Entfernen aller Zahlen in einer Textzeichenfolge. Der reguläre Ausdruck „\d+“ erledigt diese Aufgabe. Dieser Ausdruck verwendet das Metazeichen „\d“, um alle Ziffern (0–9) abzugleichen, und den Quantifizierer „+“, um anzugeben, dass eine oder mehrere Ziffern abgeglichen werden sollen. Wenn wir diesen regulären Ausdruck auf die Zeichenfolge „Ich habe 5 Äpfel und 10 Orangen“ anwenden, werden die Zahlen „5“ und „10“ identifiziert. Indem Sie diese Ziffern durch eine leere Zeichenfolge ersetzen, haben Sie Ihre Daten effektiv von allen vorhandenen Zahlen bereinigt.
Lassen Sie uns den HTML Link Grabber analysieren, um ein komplexeres Beispiel zu erklären. Dieser in JMP integrierte reguläre Ausdruck lautet wie folgt:
<A>]*?)\3[^>]*)|(\s*[a-z]+\s*=\s*('|")([^>]*?)\6))*\s*></A>
Jeder wesentliche Teil des obigen Ausdrucks ist in der folgenden Tabelle zusammengefasst:
| < d>
| Dieses Metazeichen sucht nach dem öffnenden Anker-Tag in HTML, das einen Hyperlink kennzeichnet. |
| href\s*=\s*('|") |
Dieser Abschnitt entspricht dem Attribut „href“, gefolgt von einem Gleichheitszeichen und optionalen Leerzeichen, dann entweder einem einfachen Anführungszeichen (') oder einem doppelten Anführungszeichen ("). Er erfasst das öffnende Anführungszeichen in einer Rückreferenz. |
| ([^>]*?) |
Dies entspricht allen Zeichen, die nicht die schließende spitze Klammer (>) sind. Am wichtigsten ist, dass es die URL erfasst, die den Hauptzweck dieses Ausdrucks darstellt. Beachten Sie, dass dieser Abschnitt den Formatspezifizierern in der C-Programmierung ähnelt. |
| (\s*[az]+\s*=\s*('|")([^>]*?)\6) |
Dieses Muster entspricht allen zusätzlichen Attributen innerhalb des Anker-Tags. Es erfasst den Attributnamen, ein Gleichheitszeichen, optionale Leerzeichen und den Attributwert (in Anführungszeichen) und stellt sicher, dass das schließende Anführungszeichen mit dem öffnenden Anführungszeichen übereinstimmt. |
(Weitere Informationen finden Sie unter Anpassen von Regex im Editor für reguläre Ausdrücke (jmp.com) .)
Obwohl diese Attribute und Muster komplex erscheinen mögen, stehen zahlreiche Dokumentationen und Ressourcen zur Verfügung, um zu erfahren und zu verstehen, was die einzelnen Flags darstellen.
Anwendung von Regex
Nachdem wir nun genau wissen, was Regex ist und was es kann, wo ist es am nützlichsten?
Nun, es ist schwer, es auf nur eine Anwendung einzugrenzen, aber ich werde Sie durch ein Beispiel einer Datenfilterung führen, die ich für ein Textanalyseprojekt durchgeführt habe, das Daten aus dem Diskussionsbereich der JMP-Benutzergemeinschaft umfasst. Das ultimative Ziel dieses Projekts bestand darin, die am häufigsten verwendeten Begriffe und Ausdrücke zu finden, die in Diskussionen in der Benutzergemeinschaft veröffentlicht wurden.
Unten sehen Sie ein Beispiel aus nur einem von mehr als 48.000 Diskussionskommentaren. Beachten Sie, dass es aufgrund der HTML-Formatierung und der JSL-Skripterstellung sehr schwierig ist, das im Originalkommentar verwendete Vokabular zu bestimmen.

Datenprobe vor der Bereinigung durch reguläre Ausdrücke.
Das manuelle Bereinigen dieser Begriffe und Formatierungen kann Monate oder sogar Jahre dauern, aber mit nur wenigen regulären Ausdrücken kann das Bereinigen sofort durchgeführt werden.
Zunächst wollte ich sämtliche Inhalte der JSL-Skriptsprache aus der Diskussion entfernen. Um dies zu erreichen, habe ich den folgenden regulären Ausdruck verwendet:
<CODE class=" language-jsl">[\s\S]*?<\/CODE>|
|((([€¥₩£\$]|r\$)\s{0,2}[\.,]?[0-9][\.,0-9]*)|([\.,]?[0-9][\.,0-9]*\s{0,2}([€¥₩£\$]|r\$)))
Als nächstes wollte ich alle HTML- und CSS-Formatierungs-Tags aus den Daten entfernen:
<[^>]*>
Schließlich wollte ich alle Zahlen, Dezimalstellen und Wörter, die Zahlen enthalten, entfernen:
\d+(\.\d+)?|\.\d+
Wenn Sie sich dieselbe ursprüngliche Beispielnachricht ansehen, können Sie unten sehen, wie jeder Ausdruck die angegebenen Parameter filtert:

Gefilterte Daten. Nicht gefilterte Wörter werden gelb hervorgehoben.
Untersuchung der Ergebnisse
Wie ändern sich unsere Ergebnisse, nachdem wir unsere benutzerdefinierten Ausdrücke herausgefiltert haben? Schauen wir uns die direkten Vergleiche der Wortwolken für den Rohdatensatz und den ungefilterten Datensatz mit dem bereinigten Regex-Datensatz an:
Alt (kein regulärer Ausdruck)
|
Neu (mit Regex)
|
|
|
Beachten Sie, dass die Daten vor der Verwendung regulärer Ausdrücke mit HTML-Formatierungen, JSL-Formatierungen und völlig unabhängigen Inhalten gefüllt werden. Für meine Analyse sind diese Daten völlig irrelevant. Nach der Verwendung von Regex sind die Daten für die Analyse viel nützlicher und können mit etwas mehr Arbeit sehr interessante Ergebnisse liefern.
Die Durchführung einer Themenanalyse der bereinigten Daten lieferte die folgenden Ergebnisse dazu, welche Themen in der Benutzergemeinschaft am häufigsten beantwortet werden (siehe unten):

Fünf-Themen-Analyse der Diskussionsdaten
Die fünf bereitgestellten Themen können in verschiedene Kategorien von Fragen zusammengefasst werden, nach denen Benutzer fragen:
- Thema Nr. 1: Versuchsplanung (DOE)
- Thema Nr. 2: Prädiktive Modellierung und maschinelles Lernen
- Thema Nr. 3: Lehrliche Antworten
- Thema Nr. 4: Datenformatierung und -analyse
- Thema Nr. 5: Programmierung und Scripting
Textübereinstimmung in der Regex-Spalte
Reguläre Ausdrücke sind nicht auf die Anwendung innerhalb eines Textexplorationsfensters beschränkt; Sie können darauf auch zugreifen, wenn Sie eine neue Datenspalte mit einer Zeichenfolgenformel erstellen. Um darauf zuzugreifen, gehen Sie zu Cols -> Utilities -> New Column by Text Matching.

Regex ist in jeder Textspalte einer JMP-Datei verfügbar.
Wenn Sie „Neue Spalte nach Textübereinstimmung“ auswählen, wird dasselbe Regex-Editorfenster wie im Text-Explorer geöffnet. Der gesamte Datenkurationsprozess ist genau derselbe, allerdings wird Ihr gefilterter Text jetzt automatisch in eine neue Spalte formatiert, wie im Bild unten gezeigt:

Der gleiche Vorgang wird außerhalb eines Text-Explorer-Fensters angezeigt.
Abschließende Gedanken
Reguläre Ausdrücke sind ein unverzichtbares Werkzeug im Bereich der Datenexploration. Sie bieten eine vielseitige Lösung zum Bearbeiten und Anpassen von Textzeichenfolgen an eine gewünschte Ausgabe. Mit Regex können wir das volle Potenzial unserer Daten ausschöpfen.
Weitere Informationen zu Regex finden Sie unter:
Customize Regex in the Regular Expression Editor (jmp.com)
Quantoren in regulären Ausdrücken | Microsoft Learn
Referenz zu regulären Ausdrücken (regular-expressions.info)
Regex-Funktion (jmp.com)
JMP-Hilfe