Thread Problem mit Regular Expressions (2 answers)
Opened by Gast at 2008-07-30 19:34

FIFO
 2008-07-30 20:54
#112921 #112921
User since
2005-06-01
469 Artikel
BenutzerIn

user image
Gast+2008-07-30 17:34:23--
Könnte mir jemand sagen, warum das hier false ergibt?

Code: (dl )
1
2
3
4
5
6
7
8
$test1 = "18.02.2008";

if($test1 =~ "m/^\d{2}\.\d{2}\.(\d{4})$/" ){
printf("TRUE\n");
}
else{
printf("FALSE\n");
}


Die Gründe fürs Scheitern:

1. Die Anführungsstriche um den RegEx-Term sind fehl am Platz.
2. Falsche Verwendung von printf statt print

Die Klammern um \d{4} solltest Du nur setzen, wenn Du mit diesem Fundstück später was anfangen willst, Du findest es dann in der Variable $1 (im Beispiel wäre $1 dann '2008').

lies mal perlvar
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"

View full thread Problem mit Regular Expressions