Digamos que tengo un texto como el siguiente:
AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn) AC (nn)
Ahora quiero reemplazar el nn
con números así
AC (0) AC (1) AC (2) AC (3) AC (4) AC (5) AC (6) AC (7) AC (8) AC (9) AC (10)
Solía M-x replace-regexp nn RET \# RET
lograr esto.
Preguntas:
- Quiero comenzar el número de reemplazo para comenzar en
1
lugar de desde0
. O más bien comenzar desde un número específico, por ejemplo25
. ¿Cómo debo modificar el comando anterior? - Cómo reemplazar
nn
con dígitos como001
,002
....998
,999
etc. - Quiero decir con ceros a la izquierda
regular-expressions
replace
Prasanna
fuente
fuente
Respuestas:
Técnica general
Su cadena de reemplazo puede contener código arbitrario de lisp. De la documentación para replace-regexp :
Podemos usar esta técnica de varias maneras.
Empezando desde
1
Lo que queremos hacer es reemplazarlo
nn
por uno más que elreplace-count
que usó\#
.Llama
#'replace-regexp
con el argumento\,(1+ \#)
:C-M-% nn \,(1+ \#)
reemplazará con nn1
primero, y luego2
,3
, etc.A partir de
25
Puede modificar esto no solo agregando uno, sino (en su ejemplo) 25:
C-M-% nn \,(+ 25 \#)
Ceros a la izquierda
O podemos usar
format
para agregar ceros a la izquierda. Esto reemplazaránn
con000
,001
,002
, etc Usted puede combinar otro código Lisp de arriba para empezar a001
,025
o lo que quiera.C-M-% nn \,(format "$03d" \#)
fuente
También puedes usar
cua-mode
.Seleccione la región del rectángulo (todas las nn) y luego
M-x cua-rectangle-mark-mode
.A continuación,
M-n
y acepte los valores predeterminados.fuente