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.