Regulärer Ausdruck für Telefonnummer
Published: 2023-03-21 08:01:31


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hq5tobff0lb91c2gj0a1.png)
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 Online-Formularen der Fall.

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


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s1vmyintqn8mzywagnfc.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eixqcqp0r4y8mzv05e5i.png)
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.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k90s1cu1mxmemhdinaw2.png)
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](https://www.octoparse.de/pricing)

**Kostenlose Testversion:** [14-tägige kostenlose Testversion](https://www.octoparse.de/signup)

**Herunterladen:** [Octoparse für Windows und MacOs](https://www.octoparse.de/download/windows)

### 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".

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pwzxaomak4c0z2gekxe8.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ojqpa4na770iutqbglvq.png)
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 ❤️