
Ich analysiere eine Liste von Codenummern, sie haben ein Muster von 12345.1211
. Sie sind space
durch Trennzeichen getrennt. Manchmal enthalten sie ein Leerzeichen, gefolgt von einem bis drei zusätzlichen Zahlenmustern wie:
1221.121 11 111.111111 874.95 1211
Ich habe einen regulären Ausdruck: [0-9]+\.[0-9]+
**
Es findet eine dezimierte Zahl wie 12345.1211
. Ich kapsele den regulären Ausdruck mit (
& )
und verwende , \1\n
um jeden Code mit einem Zeilenumbruch zu unterbrechen.
Ich verwende Notepad++ mit Suchen und Ersetzen. Aber der reguläre Ausdruck versagt bei den Zahlen mit Leerzeichen. Die zusätzlichen Zahlen landen in derselben Zeile wie das nächste Muster.
Beispiel:
1221.121 11 111.111111 874.95 1211 456.155
Ich habe:
1221.121
11 111.111111
874.95
1211 456.155
Kann ich irgendetwas tun, um die zusätzlichen Zahlen optional durch ein Leerzeichen getrennt einzuschließen?
Antwort1
Auf Ihren Testdaten führt dieser reguläre Ausdruck bei mir zu einer perfekten Übereinstimmung mit allen Zahlen.
[0-9]+[.]?[0-9]+
Antwort2
- Ctrl+H
- Finde was:
\b\d+(?:\.\d+)?\K\h+
- Ersetzen durch:
\n
oder\r\n
für Windows-Zeilenumbruch - check Umwickeln
- check Regulärer Ausdruck
- Replace all
Erläuterung:
\b # word boundary
\d+ # 1 or more digits
(?: # start non capture group
\. # a dot
\d+ # 1 or more digits
)? # end group, optional
\K # forget all we have seen until this position
\h+ # 1 or more horizontal spaces
Bildschirmaufnahme (vorher):
Bildschirmaufnahme (nachher):