Thread Frage zu regular expressions (5 answers)
Opened by Disco0101 at 2006-12-31 15:01

topeg
 2006-12-31 15:46
#72816 #72816
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
So wie du versuchst wird es niemals funktionieren. Denn
Dein String ist länger als zweimal acht Zeichen und die Regexp wird niemals matchen.
Wenn du kein übertrag in eine variable möchtest dann mußt du schon "(?:0[8})" schreiben. Aber wenn ich dich richtig verstehe, dann willst du immer nur die ersten acht zeichen haben und nicht die Zeichen 9-16
Wenn dui die zeichen "0" und "1" finden willst schreibe das so: "[01]". "[0-1]" geht zwar auch, ist aber unnötig kompliziert und aufwändig für den Parser.
Dann wäre da noch das fehlende ";". Der Code wird so nie funktionieren. Wenn du die Moodule "strict" und "warnings" benutzen würdest würde er schon da ordentlich mosern.

Du mußt das ganze etwas anders angehen:
Code: (dl )
1
2
3
4
5
6
#!/usr/bin/perl
use strict;
use warnings;
my $a = "0000001111000010000001111110";
if($a=~/^[01]{8}/ and $a!~/^0{8}/)
{ print "gematched\n"; }

View full thread Frage zu regular expressions