Elisp: Regex Backslash in Lisp Code

By Xah Lee. Date: .

Backslash in Emacs Lisp Regex String

In emacs lisp code, regular expression is a String, thus it follows string syntax. It needs to be enclosed by double quote string delimiters like "this".

In string, backslash is escape character.

"\n"
Newline.
"\t"
Tab.
"\""
Literal double quote.
"[chars]"
Any of chars
"[\t\n ]+"
Sequence of {tab, newline, space}.
"\\[abc\\]"
Literal square bracket with abc inside.
"(abc)"
Literal parenthesis and text.
"\\(pattern\\)"
Capture pattern.
"\\1"
First captured pattern. Used in replacement.
"\\2"
Second captured pattern. Used in replacement.

Example: Quoting Regex in Emacs Lisp Code

Here's example, suppose you have this text:

src="cat.jpg"

When you call a command such as list-matching-lines , you can type the regex in the prompt. Example:

src="\([^"]+?\)"

But in lisp code, the same regex needs to have many backslash escapes, like this:

(re-search-forward "src=\"\\([^\"]+?\\)\"" )

Regular Expressions (ELISP Manual)

Elisp, Regex in Lisp Code