Tecnica generale
La stringa di sostituzione può contenere codice lisp arbitrario. Dalla documentazione per sostituire-regexp :
Nelle chiamate interattive, il testo sostitutivo può contenere "\", seguito da un'espressione Lisp utilizzata come parte del testo sostitutivo. All'interno di quell'espressione, '\ &' è una stringa che indica l'intera corrispondenza, '\ N' una corrispondenza parziale, '# &' e '#N' i rispettivi valori numerici da 'stringa-a-numero' e '# 'stesso per' sostituisci-conta ', il numero di sostituzioni si è verificato finora, a partire da zero.
Possiamo usare questa tecnica in vari modi.
Partendo da 1
Wat che vogliamo fare è sostituirlo nn
con uno in più di quello che replace-count
hai usato \#
.
Chiama #'replace-regexp
con l'argomento \,(1+ \#)
:
C-M-% nn \,(1+ \#)
sostituirà nn con 1
prima, poi 2
, 3
ecc
A partire da 25
Puoi modificarlo non solo aggiungendo uno, ma (nel tuo esempio) 25:
C-M-% nn \,(+ 25 \#)
Zeri iniziali
Oppure possiamo usare format
per aggiungere zeri iniziali. Questo sostituirà nn
con 000
, 001
, 002
, ecc È possibile combinare altri codice Lisp qui sopra per iniziare a 001
, 025
, o quello che volete.
C-M-% nn \,(format "$03d" \#)