padrão regex para vários grupos de números

padrão regex para vários grupos de números

Estou analisando uma lista de números de código, eles têm um padrão de 12345.1211. Eles são spacedelimitados. Às vezes, eles terão um espaço seguido por um a três padrões de números de adição, como: 1221.121 11 111.111111 874.95 1211

Eu tenho uma regex: [0-9]+\.[0-9]+**

Ele encontra um número dizimado 12345.1211como . Eu encapsulo o regex com (& )e uso \1\npara quebrar cada código com uma nova linha.

Estou usando o Notepad++ para encontrar uma substituição. Mas o regex fica aquém dos números incluídos no espaço. Os números extras terminam na mesma linha do próximo padrão.

Exemplo:

1221.121 11 111.111111  874.95 1211 456.155

Eu obtive:

1221.121
11 111.111111
874.95
1211 456.155

Há algo que eu possa fazer para incluir opcionalmente os números extras separados por um espaço?

Responder1

Nos seus dados de teste, esse regex corresponde perfeitamente a todos os números;

[0-9]+[.]?[0-9]+

Responder2

  • Ctrl+H
  • Encontre o que:\b\d+(?:\.\d+)?\K\h+
  • Substitua por: \n        ou \r\npara quebra de linha do Windows
  • confira Envolver
  • verifique expressão regular
  • Replace all

Explicação:

\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

Captura de tela (antes):

insira a descrição da imagem aqui

Captura de tela (depois):

insira a descrição da imagem aqui

informação relacionada