Brought to you by molecularsciences.org.
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License.
This publication may not be redistributed without this notice.

Perl Regular Expressions

Regular Expressions

Regular expressions are used to search for patterns in strings of data.

Pattern-Matching Operators:

Pattern-matching operators are the keywords in Perl that perform pattern matches. The difference between regular expression syntax and pattern-matching operators is that regular expressions allow the programmer to build complex expressions, whereas pattern-matching operators deals with how to use them. The syntax used to perform a pattern match on a string is:

$string =~ /regular expression/expression modifier (optional)

The strings inside / / will be searched for.

The two main pattern matching operators are m//, the match operator, and s///, the substitution operator. There is also a split operator, which takes an ordinary match operator as its first argument but otherwise behaves like a function.

Although we write m// and s/// here, you can pick your own quote characters. On the other hand, for the m// operator only, the m may be omitted if the delimiters you pick are in fact slashes. (You'll often see patterns written this way, for historical reasons.)

Regular Expression Syntax:

There are a lots and lots of regular expressions in Perl. The most common operator used to apply regular expressions on strings is what is called a pattern-binding operator (=~) and (!~). The first compares a string to the pattern and succeeds if the two match. The second binding operator compares the string to the pattern and succeeds if the comparision fails. The syntax.

$string !~ /regular expression/expression modifier (optional)

The rules of regular expression matching
.

Modifiers:

An expression modifier can be added to most regular expressions to modify the behaviour of the expression. The following is an example.

# Create a basic string.
my $string = "Hello World!";

if ($string =~ /"Hello World!"/)
{
print "Case Match!\n";
}

if ($string =~ /"hello WORLD!"/i)
{
print "Case insensitive Match!\n";
}