Regulärer Ausdruck zum Hinzufügen von Leerzeichen nach 10 Ziffern

0

Wie würde ich einen regulären Ausdruck schreiben, um eine Such- / Ersetzungsoperation auszuführen, um nach 10 Ziffern einer Zahl, die 20 Ziffern lang ist, ein Leerzeichen einzufügen?

Ich habe eine lange Liste von Telefonnummern, von denen einige versehentlich 20 Stellen lang sind, und ich muss zwischen den einzelnen Instanzen ein Leerzeichen einfügen.

Bearbeiten : Ich habe versucht, \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d mit 20 Ziffern auszuwählen. Wenn Sie dies jedoch durch ein Leerzeichen ersetzen, werden nur alle 20 Stellen durch Leerzeichen ersetzt, anstatt nach 10 Stellen ein Leerzeichen einzufügen.

Ich versuche dies mit Sublime Text auf einem MacBook Pro zu tun.

DER ARZT
quelle
Änderte meine Frage und fügte hinzu, was ich bis jetzt versucht habe und was ich dafür benutze.
DER DOKTOR

Antworten:

2

Sie müssen Capture-Gruppen verwenden, wenn Sie Ersetzungsvorgänge ausführen und dabei die Komponenten der ursprünglichen Zeichenfolge beibehalten möchten.

Ihre Regex würde etwa folgen:

Muster: "^([\d]{10})([\d]{10})" //two groups of 10

ersetzen: "$1 $2"

Die Klammern um jedes Muster für einen Zehnerblock definieren eine Erfassungsgruppe. Wir sagen also: "Die ersten zehn Ziffern in Gruppe 1 und die zweiten zehn Ziffern in Gruppe 2". dann sagen wir einfach "drucke Gruppe 1, füge ein Leerzeichen hinzu und drucke Gruppe 2".

Beachten Sie, dass sich jede Plattform in Bezug auf die Regex-Syntax und die Ersetzungssyntax unterscheidet. Viele verwenden $number(wie sed), andere \number(wie notepad ++). Lesen Sie daher unbedingt die Dokumentation zu Ihrem Produkt.

Frank Thomas
quelle