问题
Is there a (non-interactive) function in emacs lisp that replaces a matched regex in an arbitrary string?
i.e.
(sub regex search-string replace-string)
as in
(sub "[^.x/]" "beef./xxfoo" "")
;; => "./xx"
回答1:
Yes, see function replace-regexp-in-string
. Simple as that.
And to replace matching text in a buffer, you have replace-regexp
.
The replacement does not need to be a literal string, but can involve retrieving parts of the regexp match and other manipulations. Use C-h f
to see the doc for these functions.
来源:https://stackoverflow.com/questions/27235293/non-interactive-emacs-regex-substitute