Thread Mit RegEx vergleich durchführen (12 answers)
Opened by Tom at 2004-07-14 20:26

betterworld
 2004-07-16 21:25
#84330 #84330
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Also, hier noch mal das ganze Skript:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/perl
use strict;
use warnings;

my @names = qw/webmaster *webmaster webmaster*/;

for my $string (qw/Alfred webmaster wwwebmaster webmasters/) {
for (0..$#names) {
my $name = $names[$_];

print "$name matcht auf $string ";
my $begin = $name =~ s/^\*// ? qr// : qr/^/;
my $end = $name =~ s/\*$// ? qr// : qr/$/;
if ($string =~ /$begin\Q$name\E$end/) {
print "sehr gut.";
} else {
print "nicht.";
}
print "\n";
}
}

Ausgabe davon ist:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
webmaster matcht auf Alfred nicht.
*webmaster matcht auf Alfred nicht.
webmaster* matcht auf Alfred nicht.
webmaster matcht auf webmaster sehr gut.
*webmaster matcht auf webmaster sehr gut.
webmaster* matcht auf webmaster sehr gut.
webmaster matcht auf wwwebmaster nicht.
*webmaster matcht auf wwwebmaster sehr gut.
webmaster* matcht auf wwwebmaster nicht.
webmaster matcht auf webmasters nicht.
*webmaster matcht auf webmasters nicht.
webmaster* matcht auf webmasters sehr gut.

Wenn bei Dir etwas anderes rauskommt, Tom, dann ist Dein Perl wohl wirklich kaputt ;-)

Beachte, dass die Variable $name veraendert wird hierbei. Man sollte sie also hinterher nicht wiederverwenden.\n\n

<!--EDIT|betterworld|1089999035-->

View full thread Mit RegEx vergleich durchführen