Perl Language(IV)Regular and Control
Perl Language(IV)Regular and Control7. Regular statement(regex)
$string =~ m/$patten/
$string =~ m{$patten}
$string =~ m|$patten|
$string =~ m!$patten!
$string =~ /$patten/
my $answer = "monger";
until ((my $patten = <STDIN>) =~ /$answer/) {
print "wrong\n";
};
my $answer = "mo*r";
while (1) {
if ((my $patten = <STDIN>) =~ /$answer/) {
print "*match*\n";
} else {
print "*not match*\n";
}
};
my $answer = "mo{2,4}r";
my $answer = "(wow)+";
8. More Regex
/f(oo|ee)t/ # foot or feet
/on (March|April|May)/
$content =~ /erl/;
$content =~ /perl/i; # charactor 'i' is for ignore the Capital letter
my $content = "I like perl I am a perl monger";
if ($content =~/I like(.*)monger/) {
print "*$1*\n";
}
We can get all the charactors between 'like' and 'monger'
8.7. Compare and Replace
my $content = "I love Java";
print $content if ($content =~ s/java/perl/i);
console output:
I love perl
s is for replacing. i is for ignoring the Capital charactors.
my $content = "I love Perl. I am a perl monger";
print $content if ($content =~ s/perl/Perl/gi);
console output:
I love Perl. I am a Perl monger
g is for all.
8.8. Replacing in our own string
my $string = "123456";
print $string if ($string =~ s/(1)(2)(3)(4)(.*)/$3$2$1$4$5/);
console output:
321456
9. Flow Control
9.1.1 last
break the loop.
for (1...10) {
last if ($_ ==;
print $_;
}
console output:
1234567
9.1.2 redo
redo the things in loop
for (1...10) {
$_++;
redo if ($_ ==;
print $_ . " ";
}
console output:
2 3 4 5 6 7 9 9 10 11
9.1.3 next
omit the current loop
for (1...10) {
next if ($_%2);
print $_ . " ";
}
console output:
2 4 6 8 10
references:
http://easun.org/perl/perl-toc/
http://perl.apache.org/
页:
[1]