Good for testing your regexp.
Construct a regexp interactively. This command makes the current buffer the "target" buffer of the regexp builder.
As you edit the regexp in the "*RE-Builder*" buffer, the matching parts of the target buffer will be highlighted.
; To quit:
; Or: C-c C-q
Why two backslashes are needed?
One escape is parsed when the string is read, another is parsed when creating the regular expression. When you're trying to match a literal backslash '\', you end up having to do it four times '\\\\' because you have to double-slash to match the slash in both the initial string parse and the regular expression parse.
(defun wcfHtmlOccur ()
"List all html headers in occur buffer."
; Find in Yaml
The “or” operator is \|. Strings and regexps are orthogonal in Emacs Lisp, so if you put a regexp in a string, you need to write e.g. "True\\|False".
Emacs has 2 escaping styles, one in EmacsLisp the other when used in commands, ie. from the M-x prompt (rgrep, occur, ...)
In EmacsLisp, use the double backslash \\|
From M-x ... use a single backslash \|
As a side note, when writing embedded EmacsLisp, for example in yasnippet dynamic expansions, you have to use a quadruple backslash: \\\\| (to escape the double backslashes.)
Always avoid this (if possible), for example in yasnippet you can provide mode related emacslisp, without the additional escaping, via a .yas-setup.el.
For further details, see:
M-: (info "(elisp) Regexp Special") RET