This page is intended as a memory-jogger about the different syntax of
Perl and Emacs regular expressions. The Emacs regular expressions
described here are the command-line regular expressions used in things
like replace-regexp rather than the elisp regular
expressions.
| Perl regex | Emacs regex | Notes |
|---|---|---|
| (, ) | \(, \) | Emacs uses backslashes in the style of "grep" for capturing parentheses, whereas Perl uses the "egrep" style of capturing parentheses without backslashes. |
| {, } | \{, \} | Emacs uses backslashes in the style of "grep" for curly brackets used for the number of matches, whereas Perl uses the "egrep" style without backslashes. |
| \s | \s- | \s matches whitespace in Perl. See What characters match a regular expression? for exactly what characters it matches. In Emacs, \s- matches the whitespace character class. The \s designates a character class and the minus sign makes it the "whitespace" class. |
| $1, $2, $3, ... | \1, \2, \3, ... | Emacs puts the results of capturing parentheses into \1, \2, etc. Perl uses a dollar sign, as in $1, $2, etc. |
| [, ] | [, ] | Emacs and Perl use the same characters, [ and ], to create character classes. |
| \d | [0-9] |
Emacs does not have a way to match digits except by using posix
character classes, as in [[:digits:]].
|
| \b | \b | Perl and Emacs use the same \b to match word boundaries. |
| \w | \w | Perl and Emacs use the same \w character to match word characters. |
Regex Tool is a tool for showing what matches a regex inside Emacs. It works with both Emacs and Perl regular expressions. There is also something called "regexp-builder" in Emacs, but this actually uses a different form of regular expressions (the ones for Emacs Lisp) and so it is not very useful in practice.
A little information on differences at a community website.
A very in-depth guide to Emacs regular expressions, which gets to the point much more rapidly than the meandering Emacs documentation.
A table comparing Emacs Lisp and Perl has a little information about regular expressions.