Remover números no meio de uma string

4

Eu quero remover os decimais em excesso de uma string usando find / replace com regex.

Por exemplo:

<xml_taga>145.3345542123</xml_taga>
<xml_tagb>125.1245471</xml_tagb>
<xml_tagc>42.12</xml_tagc>

Deve ser assim:

<xml_taga>145.33</xml_taga>
<xml_tagb>125.12</xml_tagb>
<xml_tagc>42.12</xml_tagc>

O mais distante que eu cheguei é com essa expressão

(\.\d{3,12})

Qualquer ajuda será apreciada.

    
por Weston Goodwin 30.08.2017 / 22:16

2 respostas

2
  • Ctrl + H
  • Encontre o que: (?<=\d\.\d\d)\d+ OR \d\.\d\d\K\d+
  • Substituir por: LEAVE EMPTY
  • Substituir todos

Explicação:

(?<=        : start lookbehind, make sure we have 
  \d\.\d\d  : a digit, a dot and 2 digits
)           : end lookbehind
\d+         : 1 or more digits

outra alternativa:

\d\.\d\d    : a digit, a dot and 2 digits
\K          : forget what we have seen until this point
\d+         : 1 or more digits
  • Verifique a expressão regular

Resultado para o exemplo dado:

<xml_taga>145.33</xml_taga>
<xml_tagb>125.12</xml_tagb>
<xml_tagc>42.12</xml_tagc>
    
por 31.08.2017 / 10:36
2

Eu quero remover os decimais em excesso de uma string usando find / replace com regex.

  • Menu "Pesquisar" > "Substituir" (ou Ctrl + H )

  • Defina "Localizar o que" como (\d+\.\d\d).*< .

  • Defina "Substituir por" como <

  • Ativar "Expressão regular" e "corresponde à nova linha"

  • Clique em "Substituir tudo"

Antes:

<xml_taga>145.3345542123</xml_taga><xml_tagb>125.1245471</xml_tagb><xml_tagc>42.12</xml_tagc>

Depois:

<xml_taga>145.33</xml_taga><xml_tagb>125.12</xml_tagb><xml_tagc>42.12</xml_tagc>

Outrasleituras

por 30.08.2017 / 22:41