On Thu, Sep 23, 2021 at 3:24 PM Stephen Berman wrote: > > On Thu, 23 Sep 2021 08:23:26 +0800 Hongyi Zhao wrote: > > > On Thu, Sep 23, 2021 at 3:50 AM Stephen Berman wrote: > >> > >> On Wed, 22 Sep 2021 22:28:28 +0800 Hongyi Zhao wrote: > >> > >> > Today, I stumbled on this interesting discussion here [1]: > >> > > >> > -------------------- > >> > Imagine I've got the following in a text file opened under Emacs: > >> > > >> > some 34 > >> > word 30 > >> > another 38 > >> > thing 59 > >> > to 39 > >> > say 10 > >> > here 47 > >> > > >> > and I want to turn into this, adding 1 to every number made of 2 digits: > >> > > >> > some 35 > >> > word 31 > >> > another 39 > >> > thing 60 > >> > to 40 > >> > say 11 > >> > here 48 > >> > -------------------- > [...] > > This one does nothing: > > > > (while (re-search-forward "\\<[0-9][0-9]\\>" nil t) (let ((x > > (match-string 0))) (delete-backward-char 2) (insert (format "%d" (1+ > > (string-to-number x)))))) > > It works for me. How exactly did you use it? Mark set the following in scratch buffer: some 34 word 30 M-: (while (re-search-forward "[[:digit:]]\\{2\\}" nil t) (let ((x (match-string 0))) (delete-backward-char 2) (insert (format "%d" (1+ (string-to-number x)))))) RET Please see the screenshot of the running results on my machine in the attachment. HZ