pyregexp is a command for emacs which enables you to use Python regular expressions and either a Python string or a Python expression for doing replacements.
While constructing the regexp in the minibuffer, you get live visual feedback for the matches, including group matches:
While constructing the replacement in the minibuffer, you get live visual feedback for the replacements:
It can be used to replace all matches in one go (like
replace-regexp), or a decision can be made on each match (like
query-replace-regexp). Incremental search using Python regular expressions is also supported, as a drop-in replacement for
Besides doing replacements in regular buffers, one of the most interesting uses of pyregexp is renaming a bunch of files directly in a dired buffer. See Example 4.
Put pyregexp.el and pyregexp.py into the same directory.
If you are using Emacs 24, you can get pyregexp from melpa with the package manager.
You need a Python interpreter. Add the following code to your init file. Of course you can select your own key bindings.
(add-to-list 'load-path "folder-in-which-pyregexp-files-are-in/") ;; if the files are not already in the load path (require 'pyregexp) (define-key global-map (kbd "C-c r") 'pyregexp-replace) (define-key global-map (kbd "C-c q") 'pyregexp-query-replace) ;; to use pyregexp isearch instead of the built-in regexp isearch, also include the following lines: (define-key esc-map (kbd "C-r") 'pyregexp-isearch-backward) (define-key esc-map (kbd "C-s") 'pyregexp-isearch-forward)
To customize, use
M-x customize-group [RET] pyregexp. You can specify how the Python interpreter is invoked by modifying the
pyregexp-command-prefix variable. The default is