Perl Regex
Perl Regex
html
Metacharacters Repeon
char meaning a* zero or more a’s
{} repetition modifier
\ quote or special
1 of 3 10/22/2010 10:01 AM
Regular expressions in Perl - a summary with examples http://www.cs.tut.fi/~jkorpela/perl/regexp.html
Examples
expression matches...
abc abc (that exact character sequence, but anywhere in the string)
^abc abc at the beginning of the string
abc$ abc at the end of the string
a|b either of a and b
^abc|abc$ the string abc at the beginning or at the end of the string
ab{2,4}c an a followed by two, three or four b’s followed by a c
ab{2,}c an a followed by at least two b’s followed by a c
ab*c an a followed by any number (zero or more) of b’s followed by a c
ab+c an a followed by one or more b’s followed by a c
ab?c an a followed by an optional b followed by a c; that is, either abc or ac
a.c an a followed by any single character (not newline) followed by a c
a\.c a.c exactly
[abc] any one of a, b and c
[Aa]bc either of Abc and abc
[abc]+ any (nonempty) string of a’s, b’s and c’s (such as a, abba, acbabcacaa)
[^abc]+ any (nonempty) string which does not contain any of a, b and c (such as defg)
\d\d any two decimal digits, such as 42; same as \d{2}
a “word”: a nonempty sequence of alphanumeric characters and low lines (underscores), such as foo and
\w+
12bar8 and foo_1
100\s*mk the strings 100 and mk optionally separated by any amount of white space (spaces, tabs, newlines)
abc\b abc when followed by a word boundary (e.g. in abc! but not in abcd)
perl\B perl when not followed by a word boundary (e.g. in perlert but not in perl stuff)
2 of 3 10/22/2010 10:01 AM
Regular expressions in Perl - a summary with examples http://www.cs.tut.fi/~jkorpela/perl/regexp.html
These examples use very simple regexps only. The intent is just to show contexts where regexps might be used, as well as the effect of some “flags”
to matching and replacements. Note in particular that matching is by default case-sensitive (Abc does not match abc unless specified otherwise).
s/foo/bar/;
replaces the first occurrence of the exact character sequence foo in the “current string” (in special variable $_ ) by the character
sequence bar; for example, foolish bigfoot would become barlish bigfoot
s/foo/bar/g;
replaces any occurrence of the exact character sequence foo in the “current string” by the character sequence bar; for example,
foolish bigfoot would become barlish bigbart
s/foo/bar/gi;
replaces any occurrence of foo case-insensitively in the “current string” by the character sequence bar (e.g. Foo and FOO get
replaced by bar too)
if(m/foo/)...
tests whether the current string contains the string foo
The inspiration for my writing this document was Appendix : A Summary of Perl Regular Expressions in Pankaj Kamthan’s CGI Security : Better
Safe than Sorry, and my own repeated failures to memorize the syntax.
This page belongs to section Programming of the free information site IT and communication by Jukka “Yucca” Korpela.
3 of 3 10/22/2010 10:01 AM