ExtractRegExGroup() extrahiert Text aus einem Eingabestringausdruck unter Verwendung des Musters für den angegebenen zusammengesetzten regulären Ausdruck. Wenn Sie die Funktion verwenden, geben Sie die Gruppe an, die innerhalb der zusammengesetzten regulären Ausdrucks verwendet werden soll. Die Funktion gibt einen Nullwert zurück, wenn keine Übereinstimmungen gefunden werden.
Wenn Sie die Funktion ExtractRegExGroup() in einem LOAD-Befehl verwenden und field_no weglassen, gibt die Funktion mehrere Datensätze zurück. Wenn mehrere Felder mit ExtractRegExGroup() geladen werden, werden die kartesischen Produkte aller Kombinationen erstellt.
Diese Funktion führt Regex-Vorgänge durch, bei denen die Groß- und Kleinschreibung beachtet wird. Sie können alternativ die Variante ExtractRegExGroupI() verwenden, um Regex-Vorgänge ohne Berücksichtigung der Groß-/Kleinschreibung durchzuführen.
Syntax:
ExtractRegExGroup
(text, regex, group [, field_no])
Rückgabe Datentyp: String
Argumente
Argument
Beschreibung
text
Stringformel, die den Text enthält, der im Rückgabewert extrahiert werden soll.
regex
Der reguläre Ausdruck, der zum Extrahieren von Text verwendet wird.
group
Die Nummer der Gruppe, im Fall eines zusammengesetzten regulären Ausdrucks.
Wenn der reguläre Ausdruck nur eine Gruppe enthält, verwenden Sie stattdessen die Funktion ExtractRegEx(). Alternativ verwenden Sie ExtractRegExGroup() mit einem Wert für group von 0.
Sie können einen negativen Wert für group angeben, um nach Übereinstimmungen von rechts nach links zu suchen.
field_no
Die Nummer der zu extrahierenden Übereinstimmung. Dies ist nützlich, wenn im Text mehrere Übereinstimmungen mit dem regulären Ausdruck gefunden werden können. Geben Sie zum Beispiel den Wert 4 an, um die vierte Übereinstimmung zu extrahieren.
Dies ist ein optionales Argument. Standardwert ist 1, wenn nicht angegeben.
Gibt 456 zurück (zweite Gruppe der zweiten Übereinstimmung).
Verwendung
Sie können Extract RegEx() verwenden, um Informationen zu extrahieren, die Sie von Daten isolieren möchten, die auch andere Informationen enthalten könnten (z. B. freien Text oder JSON-Strings). Hier ein Beispiel:
Extrahieren Sie E-Mail-Adressen, Telefonnummern, Kontonummern und andere Informationen aus Text.
Extrahieren Sie numerische Werte aus Text (z. B. Währung).
Standardisieren Sie die Formatierung von Text oder numerischen Daten.
Beispiel 1 – Ladeskript zum Parsen von Transaktionscodes
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Eine Tabelle namens Transactions, die Informationen über Transaktionen enthält. Bestimmte Details werden mit Transaktionscodes in der folgenden Syntax erfasst:
Transaktionsjahr-Transaktionsquelle (d. h. Online- oder Ladenkauf)- zugehöriges Vertriebszentrum
Die Erstellung mehrerer neuer Felder, um jedes Detail zu extrahieren, wobei jedes Feld denselben zusammengesetzten regulären Ausdruck wiederverwendet.
Unsere Anforderungen:
Das Jahr kann eine beliebige Kombination aus vier Zahlen sein.
Die Werte ONLINE und INSTORE sind die einzigen akzeptablen Werte für die Transaktionsquelle.
Das Vertriebszentrum muss genau fünf Nummern haben.
Ladeskript
Transactions:
Load
recno() as RecordID,
ExtractRegExGroup(TransactionCode,'([0-9]{4})-(ONLINE|INSTORE)-([0-9]{5})',0) as TransactionCode_Unparsed,
ExtractRegExGroup(TransactionCode,'([0-9]{4})-(ONLINE|INSTORE)-([0-9]{5})',1) as TransactionYear,
ExtractRegExGroup(TransactionCode,'([0-9]{4})-(ONLINE|INSTORE)-([0-9]{5})',2) as TransactionSource,
ExtractRegExGroup(TransactionCode,'([0-9]{4})-(ONLINE|INSTORE)-([0-9]{5})',3) as TransactionDC,
* Inline `
TransactionCode, Category
2025-ONLINE-60019, Product A
2024-INSTORE-60020, Product B
2025-ONLINE-60018, Product C
2024-ONLINE-60020, Product A
2025-INSTORE-60019, Product B
2025-ONLINE-60017, Product D
`;
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
RecordID
TransactionCode
TransactionCode_Unparsed
TransactionYear
TransactionSource
TransactionDC
Ergebnistabelle
RecordID
TransactionCode
TransactionCode_Unparsed
TransactionYear
TransactionSource
TransactionDC
1
2025-ONLINE-60019
2025-ONLINE-60019
2025
ONLINE
60019
2
2024-INSTORE-60020
2024-INSTORE-60020
2024
INSTORE
60020
3
2025-ONLINE-60018
2025-ONLINE-60018
2025
ONLINE
60018
4
2024-ONLINE-60020
2024-ONLINE-60020
2024
ONLINE
60020
5
2025-INSTORE-60019
2025-INSTORE-60019
2025
INSTORE
60019
6
2025-ONLINE-60017
2025-ONLINE-60017
2025
ONLINE
60017
Diese Ergebnisse zeigen, wie das Argument group es Ihnen ermöglicht, einen einzigen Regex für mehrere Vorgänge zu verwenden. Das Feld TransactionCode_Unparsed, das einen Wert für group von 0 verwendet, liefert in diesem Fall keinen zusätzlichen Wert, wird hier aber zur Demonstration der Funktion angezeigt.
Beispiel 2 – Ladeskript zum Extrahieren von Geschäftskontaktinformationen
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Eine Tabelle mit dem Namen BusinessContactInfo, die Informationen über Unternehmen enthält, die auf den Websites der einzelnen Unternehmen gefunden wurden.
ContactInfo ist ein Feld, das freien Text enthält, einschließlich E-Mail-Adressen und Telefonnummern von Unternehmen.
Die Erstellung mehrerer neuer Felder, um jedes Detail zu extrahieren, wobei jedes Feld denselben zusammengesetzten regulären Ausdruck wiederverwendet.
Unsere Anforderungen:
E-Mail-Adressen müssen eine bestimmte Reihe von Anforderungen erfüllen und einer bestimmten Syntax entsprechen.
Telefonnummern müssen NANP-Telefonnummern mit 10 Stellen sein. Wir möchten zulassen, dass die Vorwahl in Klammern eingeschlossen wird und dass an bestimmten Stellen Leerzeichen und Bindestriche zulässig sind.
Ladeskript
BusinessContactInfo:
Load
ExtractRegExGroupI(ContactInfo, '([a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']+@[a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']{1,50}\.[a-zA-Z0-9!#$%^&*\-_+=~{|}\/.'']{1,50})|(\({0,1}[0-9]{3}\){0,1}[ -]*[0-9]{3}[ -]*[0-9]{4})',1,1) as CompanyEmail,
ExtractRegExGroupI(ContactInfo, '([a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']+@[a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']{1,50}\.[a-zA-Z0-9!#$%^&*\-_+=~{|}\/.'']{1,50})|(\({0,1}[0-9]{3}\){0,1}[ -]*[0-9]{3}[ -]*[0-9]{4})',2,2) as CompanyPhoneNum,
* Inline `
ID CompanyName ContactInfo
1 Company A Email is: Company1@example.com, Phone number is: (123) 456-7890
2 Company B Email is: company2@test.com, Phone # is: 0123456790
3 Company C Email is: company3@placeholder.com, Phone no. is: 234-567-8901
` (delimiter is '\t');
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
CompanyName
CompanyEmail
CompanyPhoneNum
Ergebnistabelle
CompanyName
CompanyEmail
CompanyPhoneNum
Company A
Company1@example.com
(123) 456-7890
Company B
company2@test.com
0123456790
Company C
company3@placeholder.com
234-567-8901
Derselbe zusammengesetzte reguläre Ausdruck wird wiederverwendet, um verschiedene Informationen abzurufen. Das Argument group gibt an, welche der beiden Gruppen des regulären Ausdrucks durchsucht werden soll, und das Argument field_no gibt die Gesamtübereinstimmung (über den gesamten String) an, die wir finden möchten.
Die Variante ExtractRegEGroupxI() der Funktion gewährleistet eine Suche ohne Berücksichtigung von Groß- und Kleinschreibung.
Beispiel 3 – Ladeskript zum Extrahieren von Komponenten aus ISBN-Codes
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Die Erstellung einer Variablen (ISBN_RegEx), um den regulären Ausdruck zu speichern, den wir für alle Extraktionen verwenden wollen.
Eine Reihe von ISBN-Codes für Bücher, die eine Buchhandlung bei mehreren Lieferanten bestellen möchte.
Wir müssen aus jedem ISBN-Code Folgendes extrahieren:
EAN
Gruppe
Registrant
Veröffentlichung
Prüfsumme
Ladeskript
SET ISBN_RegEx = 'ISBN[ ]*([0-9]{3})-([0-9]{1})-([0-9]{4})-([0-9]{4})-([0-9]{1})';
ISBN:
LOAD Supplier,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',1) AS EAN,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',2) AS Group,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',3) AS Registrant,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',4) AS Publication,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',5) AS Checksum;
// Split the ISBN with the Group function in a preceding load to avoid generating a cartesian product
LOAD *,
ExtractRegEx(SupplierBooks, '$(ISBN_RegEx)') AS Books
INLINE [
Supplier, SupplierBooks
Supplier 1, ISBN 123-3-1234-1234-0 ISBN 012-2-0123-0123-4 ISBN 000-1-0123-0123-2 ISBN 234-5-2345-2345-1 ISBN 555-2-5555-5555-3 ISBN 222-4-2222-2222-2
Supplier 2, ISBN 000-0-3333-3333-3 ISBN 333-3-3333-3333-3 ISBN 555-1-5151-5151-3 ISBN 232-1-2323-2323-1 ISBN 008-0-7777-7777-3 ISBN 888-0-9999-0000-0
];
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
Supplier
EAN
Group
Registrant
Publication
Checksum
Ergebnistabelle
Supplier
EAN
Group
Registrant
Publication
Checksum
Supplier 1
000
1
0123
0123
2
Supplier 1
012
2
0123
0123
4
Supplier 1
123
3
1234
1234
0
Supplier 1
222
4
2222
2222
2
Supplier 1
234
5
2345
2345
1
Supplier 1
555
2
5555
5555
3
Supplier 2
000
0
3333
3333
3
Supplier 2
008
0
7777
7777
3
Supplier 2
232
1
2323
2323
1
Supplier 2
333
3
3333
3333
3
Supplier 2
555
1
5151
5151
3
Supplier 2
888
0
9999
0000
0
Beispiel 4 – Diagrammformeln zum Extrahieren von Geschäftskontaktinformationen (mit ExtractRegEx()-Vergleich)
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Eine Tabelle mit dem Namen BusinessContactInfo, die Informationen über Unternehmen enthält, die auf den Websites der einzelnen Unternehmen gefunden wurden.
ContactInfo ist ein Feld, das freien Text enthält, einschließlich E-Mail-Adressen und Telefonnummern von Unternehmen. Wir möchten jede E-Mail-Adresse und Telefonnummer mit Diagrammformeln extrahieren.
Unsere Anforderungen:
E-Mail-Adressen müssen eine bestimmte Reihe von Anforderungen erfüllen und einer bestimmten Syntax entsprechen.
Telefonnummern müssen NANP-Telefonnummern mit 10 Stellen sein. Wir möchten zulassen, dass die Vorwahl in Klammern eingeschlossen wird und dass an bestimmten Stellen Leerzeichen und Bindestriche zulässig sind.
Ladeskript
BusinessContactInfo:
Load * Inline `
ID CompanyName ContactInfo
1 Company A Email is: Company1@example.com, Phone number is: (123) 456-7890
2 Company B Email is: company2@test.com, Phone # is: 0123456790
3 Company C Email is: company3@placeholder.com, Phone no. is: 234-567-8901
` (delimiter is '\t');
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:
CompanyName
Fügen Sie die folgenden dynamischen Dimensionen zur Tabelle hinzu:
Derselbe zusammengesetzte reguläre Ausdruck wird wiederverwendet, um verschiedene Informationen abzurufen. Das Argument group gibt an, welche der beiden Gruppen des regulären Ausdrucks durchsucht werden soll, und das Argument field_no gibt die Gesamtübereinstimmung (über den gesamten String) an, die wir finden möchten.
Die Variante ExtractRegEGroupI() der Funktion gewährleistet eine Suche ohne Berücksichtigung von Groß- und Kleinschreibung.
Beispiel 5 – URL-Parsing (mit ExtractRegEx()-Vergleich)
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Eine Tabelle mit dem Namen Correspondence, die den Text einer E-Mail-Nachricht in einem Feld mit dem Namen EmailBody enthält.
Inhalt einer E-Mail-Nachricht, die Web-URLs enthält.
Wir möchten die zweite URL, falls vorhanden, in die folgenden Komponenten extrahieren:
Vollständige URL
Protokoll
Domäne
Pfad
Wir möchten einen einzigen regulären Ausdruck verwenden, um alle Extraktionen zu steuern.
Ladeskript
Correspondence:
Load * Inline `
ID EmailBody
1 Thanks again for this morning's meeting! You can find the meeting minutes posted here: https://example.com/resourceexample. If you still have any questions, always feel free to ask me or one of the other team members. Here are a few learning resources that might help you: http://www.example.ca/training1.pptx http://www.example.ca/training2.pptx http://www.example.ca/training3.pptx Thanks again!
2 Hi, you'll want to visit our company website for that, it's available at https://www.example.se.
3 Hello all, I just wanted to let you know that our online stores are now up and running! I couldn't be more excited. We are already seeing quite a bit of traffic and volume sold, which is very promising! For Product A, go to https://www.examplestore1.com/products. For Product B, you'll want go to https://www.examplestore2.com/products. Product C, go check out https://www.examplestore3.com/products. Cheers!
` (delimiter is '\t');
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:
ID
Fügen Sie die folgenden dynamischen Dimensionen hinzu:
ExtractRegEx() gibt die gesamte URL zurück, während ExtractRegExGroup() einzelne Teile der URL zurückgibt, die dem von uns verwendeten Wert für group entsprechen. Der Datensatz mit einem Wert für ID von 2 enthält nur eine URL, daher werden für ihn keine Daten zurückgegeben.
In allen Diagrammformeln wird derselbe reguläre Ausdruck verwendet, um verschiedene Informationen zurückzugeben. Eine Aufschlüsselung der im regulären Ausdruck definierten Gruppen sieht wie folgt aus.
Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!