Regulärer Ausdruck zum Hinzufügen eines Leerzeichens nach 10 Ziffern

Regulärer Ausdruck zum Hinzufügen eines Leerzeichens nach 10 Ziffern

Wie schreibe ich einen regulären Ausdruck für eine Such-/Ersetzungsoperation, um bei jeder 20-stelligen Zahl nach 10 Ziffern ein Leerzeichen einzufügen?

Ich habe eine lange Liste mit Telefonnummern, von denen einige versehentlich 20 Ziffern lang sind, und ich muss zwischen jedem Vorkommen ein Leerzeichen einfügen.

Bearbeiten: Ich habe \d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d ausprobiert, wodurch 20-stellige Zahlen ausgewählt werden. Wenn Sie das jedoch durch ein Leerzeichen ersetzen, werden alle 20 Ziffern durch Leerzeichen ersetzt, anstatt nach 10 Ziffern ein Leerzeichen einzufügen.

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

Antwort1

Sie müssen verwendenErfassungsgruppenwenn Sie Ersetzungsvorgänge durchführen und dabei Komponenten der Originalzeichenfolge beibehalten möchten.

Ihr regulärer Ausdruck würde ungefähr so ​​lauten:

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 sind in Gruppe $1 und die zweiten 10 sind in Gruppe $2.“ Dann sagen wir einfach: „Drucke Gruppe 1, füge ein Leerzeichen hinzu und drucke Gruppe 2.“

Beachten Sie, dass sich die Regex- und Ersetzungssyntax auf den einzelnen Plattformen unterscheiden. Viele verwenden $number(wie sed), andere \number(wie notepad++). Lesen Sie daher unbedingt die Dokumentation zu Ihrem Produkt.

verwandte Informationen