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"
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
- Cómo usar expresiones regulares en Notepad++ (tutorial)
- Notepad++: una guía para usar expresiones regulares y el modo de búsqueda extendida
- Tutorial de expresiones regulares
- RegExr: aprenda, cree y pruebe RegEx
- regex101: probador y depurador de expresiones regulares en línea
- RegExper: visualizador de expresiones regulares