Google
 
   
Login
Username:

Password:


Lost Password?

Register now!
Search
Main Menu
top books
Polls
What do you think about php-deluxe.net?
Excellent!
Cool
Hmm..not bad
What the hell is this?
encyclopedia
recommendation
compare webbrowser
Freenet DSL
Who's Online
7 user(s) are online (7 user(s) are browsing encyclopedia)

Members: 0
Guests: 7

more...
browser tip
Unix Befehle
manual of unix befehle
recommendation!
Sponsored
partner

Perl regular expression examples

Here are some examples of Perl regular expressions.

Regular Expression Description Example Note that all the if statements return a TRUE value

. Matches an arbitrary character, but not a newline.

$string1 = Hello World ; if ($string1 =~ m/...../) { print $string1 has length >= 5 ; }

( ) Groups a series of pattern elements to a single element. When you match a pattern within parentheses, you can use any of $1, $2, ... later to refer to the previously matched pattern.

$string1 = Hello World ; if ($string1 =~ m/(H..).(o..)/) { print We matched $1 and $2 ; }

Output: We matched Hel and o W ;

+ Matches the preceding pattern element one or more times.

$string1 = Hello World ; if ($string1 =~ m/l+/) { print There are one or more consecutive ls in $string1 ; } Output: There are one or more consecutive ls in Hello World

Matches zero or one times.

$string1 = Hello World ; if ($string1 =~ m/H.e/) { print There is an H and a e separated by ; print 0-1 characters (Ex: He Hoe) ; }

Modifies the *, +, or {M,N} d regexp that comes before to match as few times as possible.

$string1 = Hello World ; if ($string1 =~ m/(l.+o)/) { print The non-greedy match with l followed by one or ; print more characters is llo rather than llo wo . ; }

* Matches zero or more times.

$string1 = Hello World ; if ($string =~ m/el*o/) { print There is an e followed by zero to many ; print l followed by o (eo, elo, ello, elllo) ; }

{M,N} Denotes the minimum M and the maximum N match count.

$string1 = Hello World ; if ($string1 =~ m/l{1,2}/) { print There exists a substring with at least 1 ; print and at most 2 l s in $string1 ; }

[...] Denotes a set of possible character matches.

$string1 = Hello World ; if ($string1 =~ m/[aeiou]+/) { print $string1 contains one or more vowels. ; }

| Separates alternate possibilities.

$string1 = Hello World ; if ($string1 =~ m/(Hello|Hi|Pogo)/) { print At least one of Hello, Hi, or Pogo is ; print contained in $string1. ; }

 Matches a word boundary.

$string1 = Hello World ; if ($string1 =~ m/llo/) { print There is a word that ends with llo ; } else { print There are no words that end with llo ; }

w Matches alphanumeric, including _ .

$string1 = Hello World ; if ($string1 =~ m/w/) { print There is at least one alphanumeric ; print character in $string1 (A-Z, a-z, 0-9, _) ; }

W Matches a non-alphanumeric character.

$string1 = Hello World ; if ($string1 =~ m/W/) { print The space between Hello and ; print World is not alphanumeric ; }

s Matches a whitespace character (space, tab, newline, form feed)

$string1 = Hello World ; if ($string1 =~ m/s.*s/) { print There are TWO whitespace characters, which may ; print be separated by other characters, in $string1 ; }

S Matches anything BUT a whitespace.

$string1 = Hello World ; if ($string1 =~ m/S.*S/) { print There are TWO non-whitespace characters, which ; print may be separated by other characters, in $string1 ; }

d Matches a digit, same as [0-9].

$string1 = 99 bottles of beer on the wall. ; if ($string1 =~ m/(d+)/) { print $1 is the first number in $string1 ; }

Output: 99 is the first number in 99 bottles of beer on the wall.

D Matches a non-digit.

$string1 = Hello World ; if ($string1 =~ m/D/) { print There is at least one character in $string1 ; print that is not a digit. ; }

^ Matches the beginning of a line or string.

$string1 = Hello World ; if ($string1 =~ m/^He/) { print $string1 starts with the characters He ; }

$ Matches the end of a line or string.

$string1 = Hello World ; if ($string1 =~ m/rld$/) { print $string1 is a line or string ; print that ends with rld ; }

A Matches the beginning of a string (but not an internal line).

$string1 = Hello World ; if ($string1 =~ m/AH/) { print $string1 is a string ; print that starts with H ; }

 Matches the end of a string (but not an internal line).

$string1 = Hello World ; if ($string1 =~ m/d /) { print $string1 is a string ; print that ends with d\n ; }

[^...] Matches every character except the ones inside brackets.

$string1 = Hello World ; if ($string1 =~ m/[^abc]/) { print $string1 does not contain the characters ; print a, b, and c ; }

The m in the above regular expressions, for example m/[^abc]/, is not required in order for perl to recognize the expression as a match (cf. substitute : s/a/b/); /[^abc]/ could just as easily be used without the preceding m . The m operator can be used to alter the delimiting character; for example, m{/} may be used to enhance the legibility of patterns such as ///. See [http://www.perldoc.com/perl5.8.4/pod/perlre.html perldoc perlre] for more details.