 IT Service Management Consultants
|
|
|
Home > Perl > Introduction > Regular Expressions: Actions, Pattern and Modifier
|
|
|
|
|
|
Regular Expressions: Actions, Pattern and Modifier |
|
Written by Philip L Yuson
|
Who
is this for
This is for those who would like to know the basic
format of regular expressions.
Pre-Requisite Skills Basic
Perl Programming
Introduction
In the previous article, we showed
how regular expressions can cut down on the code that you have to
write. This article discusses the format of regular expressions.
Format
The regular expression format is
like this:
action/pattern/modifier
The action can be any of the
following:
| Action | Description
| Format
|
|
|
Search once
|
/pattern/modifier
|
|
s
|
Substitute
|
s/oldpattern/newpattern/modifier
|
|
m
|
Match
|
m/pattern/modifier
|
|
y
|
Translate
|
y/replacecharacters/withthese/
|
|
q
|
Single Quote
- similar to 'string'
|
q/string/
|
|
qq
|
Double quote
- similar to "string"
|
qq/string/
|
|
qr
|
Compile the
regular expression
|
qr/regexp/
|
|
qw
|
Compile as a
list
|
qw/item1
item2 item3 item4 item5 .../
|
Pattern
The pattern is made up of
characters that Perl recognizes: Perl uses metacharacters to
denote something within the pattern. Listed below are the more common
metacharacters.
| Metacharacter | Descripion
| Example
| Explanation
|
|
\
|
Generally,
treat the next character as is
|
\*\+
|
This
represents the *+ characters as is
|
|
*
|
Previous
character 0 or more times
|
A*
|
The letter A
0 or more times
|
|
+
|
Previous
character 1 or more times
|
A+
|
The letter A
1 or more times
|
|
?
|
Previous
character 0 or 1 time
|
N?
|
The letter N
0 or 1 time
|
|
^
|
String being
matched should start with the pattern following the ^
|
^Concept
|
String should
begin with the string Concept
|
|
.
|
Represents
any character
|
...
|
Any 3
characters
|
|
$
|
String being
matched should end with the pattern preceeding the $
|
Corporation$
|
String should
end with the string Corporation
|
|
[
]
|
Any
characters enclosed between the two brackets
|
[1358]
|
Character
should be 1, 3, 5 OR 8
|
|
{x,
y}
|
Character
should occur x minumum number of times and not more than y times
|
4{1,
3} g{3} L{4,}
|
Character 4
occurs 1 to 3 times Character g occurs 3
times Character L occurs at least 4 times
|
Modifiers
Modifiers define how a pattern is
to be used. Below are the more common modifiers.
| Modifier | Used in
| Explanation
|
|
i
|
Match and
substitute
|
Case
insensitive
|
|
g
|
Match
and substitute
|
Search
all occurences of the pattern
|
|
e
|
Substitute
|
Evaluate
the first pattern
|
Examples
$_ =
'Concept*Solutions*Corporation';
Regular Expression
| Explanation
| Result
|
|
/*/
|
Invalid
regular expression because * should be preceded by a character
|
Script
error
|
|
/\*/
|
Search for an
asterisk (*)
|
1
|
|
/Solutions/
|
Search for a
string 'Solutions'
|
1
|
|
/solutions/
|
Search for a
string 'solutions' - not found because the search is case
sensitive
|
0
|
|
/solutions/i
|
Search for a
string 'solutions' - found because the search is NOT case
sensitive
|
1
|
|
s/C/K/
|
Substitute
the first upper case C with a K
|
Result
is 1 $_ will have: Koncept*Solutions*Corporation
|
|
s/C/K/g
|
Substitute
all upper case C with a K
|
Result
is 2 $_ will have: Koncept*Solutions*Korporation
|
|
s/C/K/gi
|
Substitute
all C with a K regardless of case
|
Result
is 3 $_ will have: KonKept*Solutions*Korporation
|
|
y/con/KUD/
|
Change c to
K, change o to U, change n to D
|
Result
is 10 $_ will have: CUDKept*SUlutiUDs*CUrpUratiUD
|
|
m/^[con]/gi
|
First
character of string should be c, o or n, case is NOT sensitive
|
1
|
|
s/.n/\+\^/gi
|
If the
substring has a character followed by an n, change the two
characters to a + and @
|
Result
is 3 $_ contains: C+@cept*Soluti+@s*Corporati+@
|
These are just some of the basic
regular expressions. The only way you can learn this is to try out
combinations yourselves. To do this, you can write a simple perl
script based on this:
$_ = 'Concept*Solutions*Corporation'; $a = your-regular-expression; print "Result: $a: $_\n";
|
Have fun!
|
Add comment
|
|
Copyright: © 2012 Concept Solutions Corporation
|