| Processing XML with Perl | | Michel Rodriguez |
![]() Control Structures | | ![]() Perl Idioms |
Regular Expressions
Pattern Matching
my $string= "toto is French for foo";
if( $string=~ /toto/) { print "toto is in the string\n"; }
if( $string=~ m{(\w+) is French for (\w+)})
{ print "$1 = $2\n"; } |
characters: . is any character, [Aa-z0-9] a character class, \w a word character, \W a non-word character (anything else than a word character), \d a digit, \s a space ([ \t\r\n\f]), ^ is the beginning of a string and $ is the end.
modifiers: ? optional, + repeatable, * optional repeatable, | or
storing a match: the first expression in () is in $1, the second one in $2...
regexp modifiers: i ignore case, g keep the state
while( $string=~ /(\w+)/g { print "$1\n"; } |
Pattern Substitutions
my $string= "toto is French for foo"
$string=~ s/toto/tata/;
$string=~ s{foo}{bar};
$string=~ s{(\w+) is French for (\w+)}{$2 is English for $1}; |
![]() Control Structures | | ![]() Perl Idioms |


