logo
languageDEdown
menu

RegEx: Extrahieren aller Telefonnummern aus Zeichenketten

6 Minuten lesen

In der heutigen Welt sind wir oft mit großen Datenmengen konfrontiert, die in unterschiedlichen Formaten vorliegen. Eine Herausforderung besteht darin, diese Daten zu bereinigen, um eine konsistente Verarbeitung und Analyse zu ermöglichen. Ein Beispiel für eine solche Bereinigungsaufgabe ist die Reinigung von Telefonnummern. Hier kann Regex eine große Hilfe sein.

Regex, oder reguläre Ausdrücke, ist eine Syntax zur Beschreibung von Textmustern. Es wird häufig verwendet, um Texte zu durchsuchen, zu extrahieren oder zu manipulieren. In diesem Artikel werden wir uns ansehen, wie Regex bei der 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.

ZeichenErklä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 ^.
^aSteht 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.
$1Ist 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:

def clean_phone_number(phone):
pattern = r'(\d{3})\D*(\d{3})\D*(\d{4})'
match = re.search(pattern, phone)
if match:
return '{}-{}-{}'.format(match.group(1), match.group(2), match.group(3))
else:
return None

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.

Hier bekommen Sie Octoparse! 🤩

Preis: $0~$249 pro Monat

Packet & Preise: Octoparse Premium-Preise & Verpackung

Kostenlose Testversion: 14-tägige kostenlose Testversion

Herunterladen: Octoparse für Windows und MacOs

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.

<p>Hier ist ein Beispiel für ein Dateiformat </p>
<ul>
<li>(021)1234567 </li>
<li>(123) 456 7899 </li>
<li>(123).456.7899 </li>
<li>(123)-456-7899 </li>
<li>123-456-7899 </li>
<li>123 456 7899 </li>
<li>1234567899 </li>
<li>0511-4405222 </li>
<li>021-87888822 </li>
<li>+8613012345678 </li>
<li>... </li>
</ul>

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”.

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). 💬

Autor*in: Das Octoparse Team ❤️

Themen untersuchen

Starten mit Octoparse heute

Download

Verwandte Artikel

  • avatarChristel Kiesel
    Unter Web Crawling versteht man das Extrahieren spezifischer HTML-Daten aus bestimmten Websites. Man kann einen Web Crawler einfach als ein spezielles Programm betrachten, das dafür ausgelegt ist, Websites gezielt zu durchsuchen und Daten zu sammeln. Wir können aber nicht die URL-Adressen aller Seiten einer Website im Voraus ermitteln. Es geht also darum, wie man alle HTML-Webseiten einer Website abrufen kann.
    16. Februar 2023 · 3 Minuten lesen
  • avatarChristel Kiesel
    Wie kann man alle Bilder einer Website downloaden? Es klingt ein bisschen nicht so einfach. Besondere gibt es auch die Bilder, die der Öffentlichkeit nicht erreichbar oder gesperrt sind. In diesem Fall sollte man unbedingt ein Tool nehmen, um die Bilder herunterzuladen. In diesem Artikel werden vier Methoden oder kostenlose Software vorzustellen. Damit kann jeder die Bilder aus einer Website speichern.
    08. Februar 2023 · 5 Minuten lesen
  • avatarChristel Kiesel
    In diesem Artikel zeige ich Ihnen, wie Sie mithilfe eines regulären Ausdrucks alle E-Mail-Adressen aus TXT-Dateien oder Zeichenketten extrahieren können.
    09. Januar 2023 · 3 Minuten lesen
  • avatarNeela Schmidt
    Auf dem Internet kann man alle offenen Infomationen bekommen, damit jede Geschäftsführer*in Produkt oder Dienstleistung verbessern und den Zielkunden persönliche Lösungen anbieten kann. Die am meisten zu extrahierenden Website sind die Info-Aggregator, einschließlich yellowpage.com, yelp.com, googlemaps.com und linkedin.com, daraus die Informationen sowie Benutzerkonto, E-Mail, Telefonnummer, Branche, Firma usw mit einem bestimmten Scraping Tool sehr leicht und effektive auszulesen sind. Wenn Sie die Telefonnummer für die Entwicklung Ihres Geschäfts sehr wichtig halten, ist der Artikel als eine große Hilfe für Sie angesehen. Dann lesen Sie bitte weiter, danach wissen Sie genauer, wie man die Telefonnummer aus einer Website extrahieren kann.
    09. August 2022 · 6 Minuten lesen