
Estou analisando uma lista de números de código, eles têm um padrão de 12345.1211
. Eles são space
delimitados. À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.1211
como . Eu encapsulo o regex com (
& )
e uso \1\n
para 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\n
para 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):
Captura de tela (depois):