Non-interactive emacs regex substitute

elisp, emacs, regex

Solution

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.

Problem

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" ```

Original source