Regex-Muster für verschiedene Zahlengruppen

Regex-Muster für verschiedene Zahlengruppen

Ich analysiere eine Liste von Codenummern, sie haben ein Muster von 12345.1211. Sie sind spacedurch 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\num 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\nfü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):

Bildbeschreibung hier eingeben

Bildschirmaufnahme (nachher):

Bildbeschreibung hier eingeben

verwandte Informationen