Hinzufügen von Zeichen zu jeder Zahl über Regex in Notepad ++

2041
user3877230

Ich habe eine sehr grundlegende Frage, die ich einfach nicht verstehen kann. Ich habe ein Textdokument wie dieses:

This is 5 a test! This 3 is a test! This is a 9 test! 

und ich möchte, dass es so aussieht:

This is 5c a test! This 3c is a test! This is a 9c test! 

Bedeutet, ich möchte jeder Zahl, die ich finde, ein 'c' hinzufügen. Ich habe das versucht:

Find what: [0-9]+] Replace with: $1c Search Mode: Regular expression 

aber ich mache offensichtlich etwas falsch, weil es nicht funktioniert. Hilfe wäre dankbar. Vielen Dank!

10
Nur aus Neugier: Warum haben Sie versucht, [0-9] +] mit diesen seltsamen, unübertroffenen Klammern? Heinzi vor 5 Jahren 3
Bei @Heinzi-Wetten handelt es sich um einen Tippfehler in der Frage, wenn man sich die Nähe von "+", "]" und "Enter" auf vielen Tastaturen gibt. Lightness Races in Orbit vor 5 Jahren 2

2 Antworten auf die Frage

26
LPChip

Du hast es fast richtig verstanden.

Sie möchten suchen ([0-9]+)
und ersetzen mit$1c

Sie ( )erstellen eine Capture-Gruppe, sodass $ 1 funktioniert.

Alternativ können Sie $0cstattdessen mit ersetzen . Dann müssen Sie keine Capture-Gruppe verwenden.

Es funktioniert perfekt. Vielen Dank ;) user3877230 vor 5 Jahren 2
Nur neugierig, ob es einen Unterschied in diesem Muster gibt und nach \ d + sucht? BruceWayne vor 5 Jahren 0
@BruceWayne Je nach yoru regex-Variante kann "\ d" den Unicode-Ziffern [aus anderen Skripten] entsprechen (https://www.fileformat.info/info/unicode/category/Nd/list.htm). Beachten Sie, dass dies für PCRE nicht der Fall ist, was Notepad ++ anscheinend verwendet. In jedem Fall würde ich normalerweise `\ d` bevorzugen, wenn ich numerische Ziffern haben möchte, aber '[0-9]`, wenn ich diese Zeichen explizit haben möchte (z. B. beim Abkratzen eines definierten Formats, das auf ASCII-Zeichen beschränkt ist). Bob vor 5 Jahren 2
Tatsächlich hätte \ d genauso gut funktioniert. Ich habe die Syntax [0-9] beibehalten, da OP dies bereits versucht hat und die andere Antwort \ d verwendet. LPChip vor 5 Jahren 0
13
Toto
  • Ctrl+H
  • Finde was: \d+
  • Ersetzen mit: $0c
  • Aktivieren Sie die Option Wrap around
  • Überprüfen Sie den regulären Ausdruck
  • Replace all

Ergebnis für gegebenes Beispiel:

This is 5c a test! This 3c is a test! This is a 9c test! 
Was macht Wrap Around? Ooker vor 5 Jahren 0