Reguläre Ausdrücke in Perl
#!/usr/bin/perl -w
# Reguläre Ausdrücke in Perl
# Programm starten mit der Option -C
use strict;
use locale;
{
my $zeile = " name\@yahoo.com Heute ab 17:00 ist dieee die Weihnachtsfeier in der Cafeteria in der Oettingenstr. Alle sind herzlich eingeladen.\n";
print("Unsere Zeile <$zeile>\n");
# RegEx
print"\n# RegEx #\n\n";
if ($zeile =~ /die/) {
print "Match. In der Zeile gibt es \"die\".\n";
} else {
print "No match.\n";
}
if ($zeile !~ /das/) {
print "Match. In der Zeile gibt es kein \"das\".\n";
} else {
print "No match.\n";
}
# Quantoren
print "\n# Quantoren #\n\n";
if ($zeile =~ /(Heutes*)/) {
print "Match <$1>.\n";
} else {
print "No match.\n";
}
if ($zeile =~ /(Heutes+)/) {
print "Match <$1>.\n";
} else {
print "No match.\n";
}
if ($zeile =~ /(die{1,5})/) {
print "Match <$1>.\n";
} else {
print "No match.\n";
}
# Greedy-Nongreedy
print "\n# Greedy-Nongreedy #\n\n";
if ($zeile =~ /(Heut.+ )/) {
print "Match <$1>.\n";
} else {
print "No match.\n";
}
if ($zeile =~ /(Heut.+? )/) {
print "Match <$1>.\n";
} else {
print "No match.\n";
}
# Globale Suche /g
print "\n# Globale Suche /g #\n\n";
while ($zeile =~ /(in der)/g){
print "Match <$1>.\n";
}
# Zugrif auf grupierte Elemente
print "\n# Zugrif auf grupierte Elemente #\n\n";
# $2
# $1 $3 $4
while ($zeile =~ /(in der) ((Cafeteria)|(Oettingenstr))/g) { # Hier das '|'-Zeichen bedeutet ODER
print "Match <$1 $2>\n";
}
# $1
# $2 $3
if ($zeile =~ /( (.+?)@(.+?) )/) {
print("e-mail = <$1>\n");
print("<Name = $2 Domain = $3>\n");
}
}