Hi
Code Expressions gehören nicht zu den garantierten Verhaltensweisen, wenn in Regulären Expressions vorhanden.
Darf ich freiwillige Tester bitten, das folgende Script auf ihrem verfügbaren Perl zu testen.
Meine eigene Version ist 5.8.6
Mich würden die andere Versionen besonders interessieren.
Der Test sucht nach
"[", sofern sie nicht durch "" maskiert sind
und von [a-z]+ ":" gefolgt werden
"]", sofern sie nicht durch "" maskiert sind
und speichert die Position dieser gültigen Vorkommen.
#!usr/bin/perl
#
# Test für Parser-Entwicklung
# Beat Stoecklin, Dez.2008
use warnings;
use strict;
parser();
sub parser{
my $test = '12[p:6\[9[\]]4]6' . "\n" . '8[p:23]4';
my $pos = 0; # speichert die Position
print "Ein Test zu Code Expressions in Perl RE \nfuer Perl 5.6 bis Perl 5.10.\n\n",
"Der Test gilt als bestanden, \nwenn Erwartung und Ermittlung identisch sind.\n",
"----------------------------------------------------------------------------",
"\n\nOriginaler String :\n", $test,
"\n\nErwartete Positionen fuer [ und ] :\n",
'[3, ]13, ]15, [19, ]24,',
"\n\nErmittelte Positionen fuer [ und ] :\n";
$test =~ s/
(?{$pos++})
(?<!\\)
(
\[(?=[a-z]+:)
|
\]
)
/ pp( $1, $pos ) /xge;
print "\n\nDer String nach dem Test :\n", $test,
"\n\nBitte geben Sie Erfolg oder Misserfolg, sowie die verwendete Perl Version an.\nDanke",
"\n\nENDE mit [Enter]\n";
<>;
}
sub pp {
print $_[0], $_[1],', ';
return $_[0];
}
Darf ich bitten, Erfolg oder Misserfolg, sowie die Perl Version zu melden.
Mit Dank und freundlichen Grüssen
Beat
--
<o(((°> ><o(((°>
<°)))o>< ><o(((°>o