Eliminar números en medio de una cadena

Eliminar números en medio de una cadena

Quiero eliminar el exceso de decimales de una cadena usando buscar/reemplazar con expresiones regulares.

Por ejemplo :

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

Debería verse así:

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

Lo más lejos que he llegado es con esta expresión.

(\.\d{3,12})

Cualquier ayuda será apreciada.

Respuesta1

  • Ctrl+H
  • Encuentra qué: (?<=\d\.\d\d)\d+ O\d\.\d\d\K\d+
  • Reemplazar con:LEAVE EMPTY
  • Replace all

Explicación:

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

otra 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
  • comprobar la expresión regular

Resultado para el ejemplo dado:

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

Respuesta2

Quiero eliminar el exceso de decimales de una cadena usando buscar/reemplazar con expresiones regulares.

  • Menú "Buscar" > "Reemplazar" (o Ctrl+ H)

  • Establezca "Buscar qué" en (\d+\.\d\d).*<.

  • Establezca "Reemplazar con" en\1<

  • Habilite "Expresión regular" y "coincide con nueva línea"

  • Haga clic en "Reemplazar todo"

    Imagen

Antes:

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

Después:

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

Otras lecturas

información relacionada