12.7. Extended Regular Expressions
Extended regular expressions were introduced in Section 8.4. vile provides essentially the same facilities as nvi's extended option. The syntax is somewhat different though, relying upon additional backslash-escaped characters:
\|
Indicates alternation, house\|home.
\+
Matches one or more of the preceding regular expression.
\?
Matches zero or one of the preceding regular expression.
\(...\)
Provides grouping for *, \+, and \?, as well as making matched sub-texts available in the replacement part of a substitute command (\1, \2, etc.).
\s \S
Match whitespace and non-whitespace characters, respectively.
\w \W
Match "word-constituent" characters (alphanumerics and the underscore, `_') and non-word-constituent characters, respectively. For example, \w\+ would match C/C++ identifiers and keywords.[4]
[4] For the pedantic among you, it also matches identifiers that start with a leading digit; usually this isn't much of a problem.
\d \D
Match digits and non-digits, respectively.
\p \P
Match printable and non-printable characters respectively. Whitespace is considered to be printable.
vile allows the escape sequences \b, \f, \r, \t, and \n to appear in the replacement part of a substitute command. They stand for backspace, formfeed, carriage return, tab and newline, respectively. Also, from the vile documentation:
Note that vile mimics perl's handling of \u\L\1\E instead of vi's. Given :s/\(abc\)/\u\L\1\E/ vi will replace with ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access