Regex zum konvertieren von Telefonnummern?
Ich würde gerne alle Telefonnummern im folgenden Format:
01234-567891 oder 01234/567891 oder 01234567891
umwandeln in das Format +491234567891. Also alle Sonderzeichen entfernen und die erste Null, falls vorhanden, durch +49 zu ersetzen (ist ein CSV-Adressbuch, das auf ein SIP-Telefon soll).
Was wäre die passende regex dafür um das z.B. in Notepad++ zu machen?
Vielen Dank schonmal.
2 Antworten
Ich habe Notepad++ gerade nicht greifbar. Aus dem Kopf kann man das da nicht in einem Vorgang erledigen. Die Telefonnummern würde man mit dieser RegEx erfassen können, sofern in jeder Zeile eine Telefonnummer steht:
^0[0-9]{1,4}(-|/)[0-9]*
^0 -> eine 0 am Anfang
[0-9]{1,4} -> gefolgt von einer bis vier Ziffern (eine Vorwahl ist meines Wissens maximal fünf Ziffern lang
(-|/) -> gefolgt von einem - oder einem /
[0-9]* -> gefolgt von beliebig vielen Ziffern.
Ich würde das in zwei Schritten probieren:
^0 ersetzen durch +49
(-|/) ersetzen durch nichts
Angenommen du hast eine Liste in der die Nummern so stehen:
01234-567891;01234/567891;01234567891;01234-567891
Dann kannst du
(?<=^|;)0?
ersetzen durch +49
Und alle Minusse und Schrägstiche
[-\/]
einfach löschen.
Zur Erklärung:
(?<=^|;)
bedeutet "Nach dem Anfang der Zeile und nach jedem Semikolon"