emacs - replace numbers with calculated numbers
To replace numbers in a document with other calculated numbers (e.g. to replace a 20 with 20-10=10, and a 43 with 33), the best is to use
which is bound to
M-C-% (= M-C-Shift-5).
E.g. to subtract 8 from each number in the string
do the following:
[Query replace regexp:] \([0-9][0-9]\) RET [Query replace regexp in region \([0-9][0-9\) with:] \,(+ -8 \#1) RET
RET = press the return key.
\([0-9][0-9]\) matches each expression which has two numbers, like 11, 03, 53 etc.
The \( \) brackets mean, that the two digits form a group.
In the replace string \, says that a Lisp expression follows, + does a incrementation by -8 (so subtracts 8).
\#1 will be replaced by the first match (the two digits), interpreted as a number (hence the #). Without the #, so just \1, it will be interpreted as a string.