Zahlenwert überprüfen (regulärer ausdruck)
|
Seitenanfang |
| Hallo, Ich habe folgendes "Problem". Also: Ich habe im Idealfall eine Zahl von 13 bis 52 in einem Skalar. z.B. $skalar=23. Nun möchte überprüfen, ob dies wirklich der Fall ist. Das heißt, alles war größer als 52 und kleiner als 13 soll unwahr sein. Ich weiß dass ich das leicht mit if ($skalar > 52 or $skalar < 13) {} möglich ist, ich möchte das jedoch mit einem regulären Ausdruck lösen. Ich habe etwas, dass jedoch nicht funktioniert: if ($skalar =~ m/[13-52]/) {} mir ist schon klar, warum es nicht funktioniert...aber rein vom logischen her soll es so sein. Danke!
Datum: 31.10.2006-23:51

|
re: Zahlenwert überprüfen (regulärer ausdruck)
|
Seitenanfang |
| Das kannst Du einfach mit einer generierten oder-Abfrage machen. for my $i ( 13..52 ) { $regex .= "$i\|" ; } chop($regex) ; if ( $skalar =~ /^($regex)$/) {}
Datum: 31.10.2006-23:56

|
re: Zahlenwert überprüfen (regulärer ausdruck)
|
Seitenanfang |
| hi...danke erstmal..aber das funktioniert leider nicht (hab auch den . vor dem = weggemacht)
Datum: 01.11.2006-00:28

|
re: Zahlenwert überprüfen (regulärer ausdruck)
|
Seitenanfang |
| Mach den Punkt wieder hin, wo er war, dann funktioniert es auch...
Datum: 01.11.2006-08:39

|
re: Zahlenwert überprüfen (regulärer ausdruck)
|
Seitenanfang |
zitat: "for my $i ( 13..52 ) { $regex .= "$i\|" ; } chop($regex) ; "aua. schon mal was von join() gehört?
my $regex = join '|', 13..52;
Datum: 01.11.2006-09:47

|
re: Zahlenwert überprüfen (regulärer ausdruck)
|
Seitenanfang |
| "Ich weiß dass ich das leicht mit if ($skalar > 52 or $skalar < 13) {} möglich ist, ich möchte das jedoch mit einem regulären Ausdruck lösen." warum?
Datum: 01.11.2006-09:44

|
re: Zahlenwert überprüfen (regulärer ausdruck)
|
Seitenanfang |
| ...ich dachte nur, dass es vllt eine einfachere Lösung gibt als das mit if kleiner und if größer zu lösen. Quasi einfach zu überprüfen ob sich eine Zahl X in einer bestimmten Zahlenmenge(z.B. [13 .. 52]) wiederfindet. Gibt es da vllt etwas? thx
Datum: 01.11.2006-11:28

|