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

2001
THE DOCTOR

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

Ich habe eine lange Liste von Telefonnummern, von denen einige versehentlich 20 Ziffern lang sind, und ich muss ein Leerzeichen dazwischen 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 \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d macht, die 20 Ziffern wählt Wenn Sie dieses Feld jedoch durch ein Leerzeichen ersetzen, werden alle 20 Ziffern durch leere Leerzeichen ersetzt, anstatt nach 10 Ziffern ein Leerzeichen einzufügen.

Ich versuche dies mit Sublime Text auf einem MacBook Pro.

0
Änderte meine Frage und fügte hinzu, was ich bisher ausprobiert habe und was ich dafür verwende. THE DOCTOR vor 7 Jahren 0

1 Antwort auf die Frage

2
Frank Thomas

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

Ihre Regex würde ungefähr so ​​aussehen:

Muster: "^([\d])([\d])" //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 der Gruppe $ 1 und die zweiten 10 sind in der Gruppe $ 2". Dann sagen wir einfach "Gruppe 1 drucken, Leerzeichen hinzufügen und Gruppe 2 drucken".

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