Stringüberprüfung
am 04.04.2006 19:58:20 von Karsten
Hi,
ich habe ein String, z.B "1624", oder auch "156gt".
Ich möchte jetzt testen ob im String, egal wie lang, nur Zahlen und
keine Buchstaben enthalten sind.
Wie kann ich das anstellen?
Leider konnte ich bei den regulären Ausdrücken nichts passendes finden,
da er bei einer gefundenden Ziffer, ein Erfolg meldet.
mein Versuch: if ($string = /\d/);
thx Karsten
Re: Stringüberprüfung
am 04.04.2006 20:11:52 von Wolf Behrenhoff
Karsten schrieb:
> Hi,
>
> ich habe ein String, z.B "1624", oder auch "156gt".
> Ich möchte jetzt testen ob im String, egal wie lang, nur Zahlen und
> keine Buchstaben enthalten sind.
Du meinst sicher, dass er nur _Ziffern_ (oder nur eine Zahl) enthalten
darf, oder?
> Wie kann ich das anstellen?
> Leider konnte ich bei den regulären Ausdrücken nichts passendes finden,
> da er bei einer gefundenden Ziffer, ein Erfolg meldet.
> mein Versuch: if ($string = /\d/);
/^\d+$/
Oder lies
perldoc -q "scalar is a number"
Wolf
Re: Stringüberprüfung
am 05.04.2006 01:53:37 von Maluku
Karsten schrieb:
> mein Versuch: if ($string = /\d/);
Da fehlt was: ^
bla() if $string =~ /^\d$/;
oder
bla() unless $string =~ /\D/;
2. ist denke ich mal schneller:
--
$_='';s%%`^.*`s;.*;uhtnmo;;a>lha~a>inu~a>fmk~a>rou~a>duM~a>b tl~s;&&&&&&;
!d1!l2!b3!i4!f5!r6q(?);e;Z``}a>&&&`sub# "1#{#"_=shift#;s^"2^"3#^;``;~`
return #"_#}``^!&&`"1(#""2)#\.`Z%x;s~Z~print~g;s/#/\\/g;
s/`(.)(.+?)`(.+?)`/s$1$2$1$3$1g\;/gsx;s;&;(.);g;y^"^$^;print ;
Re: Stringüberprüfung
am 05.04.2006 18:22:19 von Karsten
Marc Lucksch wrote:
> Karsten schrieb:
>> mein Versuch: if ($string = /\d/);
> Da fehlt was: ^
sorry hatte ich vergessen, ist im Original natürlich enthalten ;o)
> bla() if $string =~ /^\d$/;
thx Karsten
Re: Stringüberprüfung
am 06.04.2006 00:15:46 von Oliver Block
Karsten wrote:
> Hi,
>
> ich habe ein String, z.B "1624", oder auch "156gt".
> Ich möchte jetzt testen ob im String, egal wie lang, nur Zahlen und
> keine Buchstaben enthalten sind.
> Wie kann ich das anstellen?
> Leider konnte ich bei den regulären Ausdrücken nichts passendes finden,
> da er bei einer gefundenden Ziffer, ein Erfolg meldet.
> mein Versuch: if ($string = /\d/);
>
> thx Karsten
$string =~ /[^0-9]/;
$string =~ /\D/;
ist wahr, falls Zeichen enthalten sind, die keine Ziffern sind. Du willst ja
nicht wissen, ob Zahlen enthalten sind, sondern ob nicht-Zahlen enthalten
sind!
Re: Stringüberprüfung
am 06.04.2006 15:58:33 von Matthias Peick
Wolf Behrenhoff skribis:
> Du meinst sicher, dass er nur _Ziffern_ (oder nur eine Zahl) enthalten
> darf, oder?
Ich hoffe, er meint Ziffern. Das Prüfen auf eine Zahl ist nämlich
komplizierter.