In der modernen Welt müssen wir oft große, heterogene Datenmengen bereinigen, um eine konsistente Verarbeitung und Analyse zu ermöglichen. Ein Beispiel ist die Reinigung von Telefonnummern, wozu Regex eine große Hilfe sein kann.
Reguläre Ausdrücke (Regex) sind eine Syntax zur Textmustersuche, -extraktion und -manipulation. In diesem Artikel wird gezeigt, wie Regex zur Bereinigung von Telefonnummern eingesetzt werden kann.
Was ist RegEx?
In der allgemeinen Informatik ist eine Regular Expression (abgekürzt als RegEx oder RegExp) ein regulärer Ausdruck. Also eine Zeichenfolge, mit der eine Reihe von Zeichenfolgen mithilfe einiger Syntaxregeln beschrieben wird. Diese sind vor allem in der Softwareentwicklung und im Webdesign in Verwendung. RegEx ist zum Beispiel bei Anwendungen wichtig, die Eingaben des Benutzers erwarten. Das ist etwa bei bei Online-Formularen der Fall.
In einigen Fällen sind die Telefonnummer mit anderen Informationen in einer Zeichenkette dargestellt. Wenn man nur die Infos von Telefonnummern auslesen möchte, soll man unbedingt das RegExp für den einmaligen Abruf aller Daten einschreiben, statt “Control + F”, “Control + C” und “Control + V” für jede Daten zu tippen.
“Ein regulärer Ausdruck (englisch regular expression, Abkürzung RegExp oder RegEx) ist in der theoretischen Informatik eine Zeichenkette, die der Beschreibung von Mengen von Zeichenketten mithilfe bestimmter syntaktischer Regeln dient.”
Wie können wir mithilfe eines regulären Ausdrucks Telefonnummern aus den Zeichenketten auslesen?
In einigen Fällen sind die Telefonnummer mit anderen Informationen in einer Zeichenkette dargestellt. Wenn man nur die Infos von Telefonnummern auslesen möchte, soll man unbedingt das RegExp für den einmaligen Abruf aller Daten einschreiben, statt “Control + F”, “Control + C” und “Control + V” für jede Daten zu tippen.
Mit RegEx kann man die Daten mit Gleichheiten, sowie die Nummern, Namen, Datum, dessen Koden in Formen keine Unterschiede haben, sehr einfach und schnell abrufen.
Die RegEx-Grundregeln
Wenn Sie Telefonnummern mithilfe von RegEx Ausdrücken extrahieren möchten, aber nicht wissen, wie man einen solchen Ausdruck schreibt, kann Ihnen dieser Artikel dabei helfen.
Es kostet Zeit, RegEx von Grund auf zu erlernen. Wenn Sie RegEx jedoch häufig bei Ihrer täglichen Arbeit verwenden und dadurch Ihre Produktivität erheblich steigern können, lohnt es dann die Mühe.
Zeichen | Erklärung |
[abc] | Mit den eckigen Klammern [ und ] wird eine Zeichenauswahl definiert. Das Beispiel findet eines dieser Zeichen. |
[a-e] | Ein Bindestrich definiert einen bestimmten Bereich. Das Beispiel findet die Zeichen a, b, c, d und e. Auch hier muss nur eines der Zeichen zutreffen. |
[a-zA-Z0-9] | Innerhalb einer Zeichenauswahl können auch mehrere Gruppen und Einzelzeichen stehen. Im Beispiel entspricht die Zeichenauswahl den Kleinbuchstaben a bis z, den Großbuchstaben A bis Z und sowie den Ziffern 0 bis 9. |
[0-9] | Der Bindestrich lässt sich auch nur auf Zahlen anwenden. Das Beispiel steht für die Ziffern 0 bis 9 |
[^a] | Durch das ^ Zeichen am Anfang einer Zeichenauswahl wird diese negiert. Das bedeutet, dass es jedes Zeichen finden würde bis auf das nach dem ^. |
^a | Steht dieses Zeichen nicht innerhalb einer Klammer, so bedeutet es, dass es für den Anfang eines Textes steht. |
a$ | Dieses Zeichen steht für das Ende einer Zeile oder einer Zeichenkette. |
. | Der Punkt steht für ein beliebiges Zeichen und kann somit jedes Zeichen finden. |
a* | Das Zeichen vor dem Stern darf beliebig oft vorkommen. |
.* | Punkt und Stern in Kombination findet X-beliebig viele Zeichen. |
a+ | Das Zeichen vor dem + muss mindestens einmal vorkommen. |
ab{2} | Die Buchstaben die davor stehen, müssen exakt 2 Mal gefunden werden. |
ab? | Das Fragezeichen bedeutet, dass das Zeichen vorkommen kann aber es muss nicht vorkommen. |
(a|A) | Die Pipe | agiert als ODER. Es darf nur eines der beiden Zeichen(-ketten) vorkommen. |
$1 | Ist die Rückwärtsreferenz auf eine Gruppe bzw. ein Teilmuster. Vor allem für das Suchen und Ersetzen wichtig. $1 bezieht sich auf die erste Klammer- Gruppe. |
Da die Grundregeln für Einsteriger*innen ziemlich kompliziert sind, bieten wir in diesem Artikel eine einfachere Methode. Wenn Sie die Vorteile von RegEx auf einfache Weise nutzen wollen, ist ein RegEx-Tool genau das Richtige für Sie.
Telefonnummern mit Regex bereinigen
Schritt 1: Sammeln Sie Ihre Daten
Der erste Schritt bei der Reinigung von Telefonnummern ist das Sammeln Ihrer Daten. Sie benötigen eine Liste mit Telefonnummern in verschiedenen Formaten. Stellen Sie sicher, dass die Liste alle möglichen Formate enthält, die Sie möglicherweise bereinigen müssen. Es ist auch wichtig, sicherzustellen, dass Ihre Liste nur Telefonnummern enthält und keine anderen Informationen wie Adressen oder Namen.
Schritt 2: Importieren Sie die Regex-Bibliothek
Bevor Sie mit der eigentlichen Bereinigung beginnen können, müssen Sie sicherstellen, dass Sie die Regex-Bibliothek in Ihrer Programmiersprache importiert haben. In Python können Sie dies zum Beispiel mit dem folgenden Code tun:
import re
Schritt 3: Schreiben Sie Ihre Regex-Muster
Als nächstes müssen Sie Ihre Regex-Muster schreiben, die die verschiedenen Formate von Telefonnummern erkennen und extrahieren können. Hier sind einige Beispiele für Regex-Muster, die Sie verwenden können:
- US-Telefonnummer ohne Vorwahlzeichen: r’\d{3}-\d{3}-\d{4}’
- US-Telefonnummer mit Vorwahlzeichen 1: r’1-\d{3}-\d{3}-\d{4}’
- Kanadische Telefonnummer mit Vorwahlzeichen 1 und Landesvorwahl: r’+1 \d3\d3 \d{3}-\d{4}’
- Britische Telefonnummer mit Vorwahlzeichen +44 und Ortsvorwahl 20: r’+44 00 20 \d{4} \d{4}’
Stellen Sie sicher, dass Ihre Regex-Muster alle möglichen Formate berücksichtigen, die in Ihrer Telefonnummernliste vorkommen können.
Schritt 4: Schreiben Sie Ihre Reinigungsfunktion
Sobald Sie Ihre Regex-Muster haben, können Sie Ihre Reinigungsfunktion schreiben. Diese Funktion sollte jedes Element in Ihrer Telefonnummernliste durchgehen und es anhand des passenden Regex-Musters bereinigen. Hier ist ein Beispiel für eine Reinigungsfunktion in Python:
Diese Funktion verwendet das Regex-Muster r'(\d{3})\D*(\d{3})\D*(\d{4})’, um eine Telefonnummer im Format xxx-xxx-xxxx zu extrahieren und zurückzugeben. Es entfernt alle Nicht-Ziffernzeichen aus der Telefonnummer und gibt None zurück, wenn das Regex-Muster nicht übereinstimmt.
Schritt 5: Testen Sie Ihre Reinigungsfunktion
Nachdem Sie Ihre Reinigungsfunktion geschrieben haben, müssen Sie sicherstellen, dass sie funktioniert. Sie können dies tun, indem Sie einige Telefonnummern aus Ihrer Liste auswählen und Ihre Reinigungsfunktion darauf anwenden. Überprüfen Sie, ob die bereinigten Telefonnummern im richtigen Format vorliegen und ob Ihre Funktion alle möglichen Formate korrekt erkennt.
Schritt 6: Automatisieren Sie den Bereinigungsprozess
Sobald Sie Ihre Reinigungsfunktion getestet haben, können Sie den Bereinigungsprozess automatisieren. Sie können Ihre Funktion auf Ihre gesamte Telefonnummernliste anwenden und eine neue Liste mit bereinigten Telefonnummern erstellen. Diese neue Liste kann dann für weitere Analysen und Verarbeitungen verwendet werden.
RegEx-Tool von Octoparse
Es gibt einige gebrauchsfertige Tools, die das Schreiben von RegEx vereinfachen können. Octoparse hat ein eingebautes RegEx-Tool, um diese Aufgabe zu erledigen.
Mit diesem einfach zu bedienenden Tool brauchen Sie sich nur darum zu kümmern, das Muster der gesuchten Telefonnummern im Text zu finden.
https://www.octoparse.de/template/local-lead-scraper
https://www.octoparse.de/template/das-telefonbuch-lead-scraper
Weitere Info können Sie hier finden 👉 RegEx: Extrahieren aller E-Mail-Adressen aus TXT-Dateien oder Strings
Beispiele für Scrapen von Telefonnummern durch RegEx
Es kann sich um mehrere Telefonnummern in einer einzigen großen Zeichenkette handeln, und diese Telefonnummern können in verschiedenen Formaten vorliegen. Hier ist ein Beispiel für das Dateiformat:
- (021)1234567
- (123) 456 7899
- (123).456.7899
- (123)-456-7899
- 123-456-7899
- 123 456 7899
- 1234567899
- 0511-4405222
- 021-87888822
- +8613012345678
- ..
Was ist die einfachste Methode, um Telefonnummer wie diese zu extrahieren? Jetzt verwenden wir das Tool, um reguläre Ausdrücke zu generieren und alle Telefonnummern schnell zu finden.
Finden Sie zunächst das gemeinsame Zeichen, mit dem jede Telefonnummer beginnt und endet. Zum Beispiel finde ich für den oben genannten Zieltext den unten dargestellten Quellcode.
Jede Telefonnummer beginnt mit <li> und endet mit </li>.
Und wir können das RegEx-Tool in Octoparse verwenden, um schnell alle Telefonnummern zu extrahieren.
- Starten Sie Octoparse und öffnen Sie das RegEx-Tool.
- Kopieren Sie den Quellcode und fügen Sie ihn in das Feld “Original Text” ein.
- Wählen Sie dann die Option “Start with” und geben Sie “<li>” ein.
- Wählen Sie dann die Option “End with” und geben Sie “</li>” ein.
- Vergessen Sie nicht, die Option “Match All” zu wählen.
- Klicken Sie auf “Match”.
Zusammenfassung
Die Bereinigung umfangreicher, heterogener Daten ist in der modernen Welt von entscheidender Bedeutung. In diesem Artikel wird gezeigt, wie man Telefonnummern mit Hilfe von regulären Ausdrücken (RegEx) extrahiert und bereinigt. Anhand von detaillierten Schritten und Beispielcode wird gezeigt, wie man effektiv das gewünschte Telefonnummernformat aus gemischten Daten extrahiert.
Wenn Sie Probleme bei der Datenextraktion haben, oder uns etwas Vorschlägen geben möchten, kontaktieren Sie bitte uns per E-Mail (support@octoparse.com). 💬
👍👍 Wenn Sie Interesse an Octoparse und Web Scraping haben, können Sie es zunächst 14 Tage lang kostenlos ausprobieren.
Autor*in: Das Octoparse Team ❤️