1 votos

Notepad ++ inserta un 0 antes del segundo último carácter

Tengo una lista como esta:

 2044
2045
2046
103
106
109
 

En cualquier línea que tenga 3 dígitos, solo quiero insertar un "0" antes del segundo último dígito.

2044, 2045, 2046 quedan solos y 103 cambios a 1003, 1006, 1009.

En Notepad ++ Regex tengo Find: ^ [0-9] [0-9] [0-9] $ que parece resaltar todas las líneas de tres dígitos, pero estoy atascado al insertar el 0 antes de la segunda en estas líneas.

¡Gracias por tu tiempo!

3voto

Attie Puntos 223

Es necesario hacer uso de expresiones regulares (Regex "captura de los grupos" (cualquier coincidencia entre ()), y "retro-referencias" para obtener la captura de texto (\1 y \2 por debajo).

Tiene una obra en un sitio como regex101.com, que también explicará el Regex para usted:

Después de:

2044
2045
2046
1003
1006
1009

0voto

Toto Puntos 294

Otra manera de ir sin grupos (más eficiente):

  • Ctrl+H
  • Qué buscar: (?<=^\d)(?=\d\d$)
  • Reemplazar con: 0
  • compruebe Envoltura alrededor de
  • verificación de la expresión Regular
  • Reemplazar todos

Explicación:

(?<=        # positive lookbehind, zerolength assertion that makes sure we have before current position:
    ^       # beginning of line
    \d      # 1 digit
)           # end lookbehind
(?=         # positive lookahead,zerolength assertion that makes sure we have after current position:
    \d\d    # 2 digits
    $       # end of line
)           # end lookahead

El resultado para el ejemplo dado:

2044
2045
2046
1003
1006
1009

Captura de pantalla:

enter image description here

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: