it-swarm.com.de

Beim Ersetzen mit Regex: Wie behält man einen Teil der übereinstimmenden Zeichenfolge?

Ich habe

12.hello.mp3
21.true.mp3
35.good.mp3
.
.
.

so als Dateinamen in einer Textdatei aufgelistet.

Ich muss nur die Punkte (.) Vor Zahlen durch ein Leerzeichen ersetzen (z. B. 12.hello.mp3 => 12 hello.mp3). Wenn ich Regex als "[0-9]." Habe, ersetzt es auch die Zahl . Bitte helfen Sie mir.

36

Ersetzen

^(\d+)\.(.*mp3)$

mit

\1 \2

In aktuellen Versionen von Notepad ++ wird auch Folgendes akzeptiert, was auch von anderen IDE/Editoren (z. B. JetBrains-Produkten wie Intellij IDEA) akzeptiert wird:

$1 $2

Dabei wird davon ausgegangen, dass die zum Abgleich von Notepad ++ - Regex passende Gruppe Gruppen unterstützt. Was der Regex bedeutet, ist: die Ziffern vor dem ersten Punkt als Gruppe 1 und alles danach als Gruppe 2 abgleichen (aber nur, wenn es mit mp3 endet)

54

Unter Verwendung des in der akzeptierten Antwort beschriebenen Grundmusters wird hier ein Beispiel beschrieben, in dem class="odd" und class="even" zu jedem <tr>-Element in Notepad ++ oder einem anderen mit Regex kompatiblen Editor hinzugefügt werden:

Finden Sie was: (<tr><td>)(.*?\r\n)(<tr><td>)(.*?\r\n)

Ersetzen durch: <tr class="odd"><td>\2<tr class="even"><td>\4

0
eapo