Regexp-Capture-Gruppe in Notepad ++ ersetzen?


77

Kurze Frage: Ich habe einen regulären Ausdruck, ^(?:\b[A-Z]+\b\s+)+(.*)\d{8}der zwei Erfassungsgruppen ergibt. Ich möchte die Erfassungsgruppe 1 durch ein Leerzeichen ersetzen. Ist das möglich?

Wenn ich ersetze durch: \1ersetzt es TEST TESTER Hello, world. Another word here. 75793250-> durch Hello, world. Another word here. Ich möchte dieses Ergebnis : TEST TESTER 75793250. Ersetzen Sie das \1durch ein Leerzeichen.


3
Ähm, soweit ich sehe, gibt es nur eine Erfassungsgruppe ...? (?: ...)ist eine nicht erfassende Gruppe.
— Jerry

Ich dachte es hätte zwei, 0 und 1? Gruppe 0 ist das volle Spiel? Jedenfalls möchte ich die Gruppe, die Notepad ++ 1 aufruft, durch ein Leerzeichen ersetzen.
— Kaah

Wenn ich ersetze durch: \1ersetzt es TEST TESTER Hello, world. Another word here. 75793250-> durch Hello, world. Another word here. Ich möchte dieses Ergebnis : TEST TESTER 75793250. Ersetzen Sie das \1durch ein Leerzeichen.
— Kaah

Dies \1funktioniert in der neuesten Version von Notepad ++ nicht für mich, aber ich könnte es $0stattdessen zum Laufen bringen. Es scheint, dass sie die Syntax zum Ersetzen von Gruppen geändert haben.
— Demoncodemonkey

Antworten:


133

Versuchen Sie es mit:

^((?:\b[A-Z]+\b\s+)+)(?:.*)(\d{8})

Und ersetzen durch:

\1\2

1
@ Kaah Gern geschehen! :) Außerdem erinnerte mich daran, meine Notepad-Version zu aktualisieren! Ich hatte 6.1.8 auf xD
— Jerry

8

Warum würdest du das tun.

Mach es so

Regex:^(\b[A-Z]+\b\s+)+(?:.*)(\d{8})

Ersetzen mit:\1 \2


Danke, aber das gibt es Invalid regular expressionin Notepad ++ 6.3.3. Bitte überarbeiten Sie Anirudh.
— Kaah

Diese Regex wird zurückgegeben, TESTER 75793250da beim Erfassen einer wiederholten Gruppe nur die letzte Zeichenfolge angezeigt wird , mit der sie übereinstimmt. Ein weiteres Beispiel: Das Ersetzen eines Strings abcddurch einen (.)+\1d
— regulären Ausdruck

6
"Warum würdest du das tun."? Weil OP es nicht wusste, stellten sie die Frage. Ein solcher Snark nützt niemandem etwas.
— Jake Reece
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.