Stringüberprüfung

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
Karsten [ Di, 04 April 2006 19:58 ] [ ID #1260250 ]

Re: Stringüberprüfung

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
Wolf Behrenhoff [ Di, 04 April 2006 20:11 ] [ ID #1260251 ]

Re: Stringüberprüfung

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 ;
Maluku [ Mi, 05 April 2006 01:53 ] [ ID #1261849 ]

Re: Stringüberprüfung

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
Karsten [ Mi, 05 April 2006 18:22 ] [ ID #1261870 ]

Re: Stringüberprüfung

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!
Oliver Block [ Do, 06 April 2006 00:15 ] [ ID #1261878 ]

Re: Stringüberprüfung

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.
Matthias Peick [ Do, 06 April 2006 15:58 ] [ ID #1263543 ]
Perl » de.comp.lang.perl.misc » Stringüberprüfung

Vorheriges Thema: Wie deklariert man am besten Wegwerfvariablen?
Nächstes Thema: Reguläre Ausdrücke - bestimmte Worte dürfen nicht vorkommen