perlreref (1) Linux Manual Page
NAME
perlreref – Perl Regular Expressions Reference
DESCRIPTION
This is a quick reference to Perl’s regular expressions. For full information see perlre and perlop, as well as the “SEE ALSO” section in this document.
OPERATORS
"=~" determines to which variable the regex is applied. In its absence, $_ is used.
$var =~ /foo/;
"!~" determines to which variable the regex is applied, and negates the result of the match; it returns false if the match succeeds, and true if it fails.
$var !~ /foo/;
"m/pattern/msixpogcdualn" searches a string for a pattern match, applying the given options.
m Multiline mode - ^ and $ match internal lines
s match as a Single line - . matches
i case-Insensitive
x eXtended legibility - free whitespace and comments
p Preserve a copy of the matched string -
${^PREMATCH}, ${^MATCH}, ${^POSTMATCH} will be defined.
o compile pattern Once
g Global - all occurrences
c don't reset pos on failed matches when using /g
a restrict \d, \s, \w and [:posix:] to match ASCII only
aa (two a's) also /i matches exclude ASCII/non-ASCII
l match according to current locale
u match according to Unicode rules
d match according to native rules unless something indicates
Unicode
n Non-capture mode. Don't let () fill in $1, $2, etc...
If ‘pattern’ is an empty string, the last successfully matched regex is used. Delimiters other than ‘/’ may be used for both this operator and the following ones. The leading "m" can be omitted if the delimiter is ‘/’.
"qr/pattern/msixpodualn" lets you store a regex in a variable, or pass one around. Modifiers as for "m//", and are stored within the regex.
"s/pattern/replacement/msixpogcedual" substitutes matches of ‘pattern’ with ‘replacement’. Modifiers as for "m//", with two additions:
e Evaluate 'replacement' as an expression
r Return substitution and leave the original string untouched.
‘e’ may be specified multiple times. ‘replacement’ is interpreted as a double quoted string unless a single-quote ("'") is the delimiter.
"m?pattern?" is like "m/pattern/" but matches only once. No alternate delimiters can be used. Must be reset with reset().
SYNTAX
\ Escapes the character immediately following it
.Matches any single character except a
newline(unless / s is
used) ^
Matches at the beginning of the string(or line, if / m is used)
$ Matches at the end of the string(or line, if / m is used) *
Matches the preceding element 0 or
more times
+ Matches the preceding element 1 or
more times
? Matches the preceding element 0 or 1 times{…} Specifies a range of occurrences for the element preceding it
[…] Matches any one of the characters contained within the brackets(…) Groups subexpressions for capturing to $1,
$2…(?: …) Groups subexpressions without capturing(cluster) | Matches either the subexpression preceding or following it
\g1 or \g{1}, \g2… Matches the text from the Nth group
\1, \2, \3 … Matches the text from the Nth group
\g – 1 or \g{-1}, \g – 2 … Matches the text from the Nth previous group
\g{name} Named backreference
\k<name> Named backreference
\k ‘name’ Named backreference(? P = name) Named backreference(python syntax)
ESCAPE SEQUENCES
These work as in normal strings.
Alarm(beep)
Escape
Formfeed
Newline
Carriage return
Tab
Char whose ordinal is the 3 octal digits, max \777
\o{2307} Char whose ordinal is the octal number, unrestricted
Char whose ordinal is the 2 hex digits, max �
