Regular Expression (Integer aus String)
Christopher
- java
0 Thomas Mell0 MudGuard0 MudGuard
Hallo Leute,
ich stehe auf dem Schlauch was das Auslesen einer in einem String
enthaltenen Zahl mittels einer Regular Expression angeht. Und zwar
möchte ich gerne aus dem String "1 month" (oder aber auch "1month",
"2 months", "3 Monate") die Anzahl der Monate auslesen und schließ-
lich als Integer Wert behandeln können.
Ich denke die RegExp dürfte sprachenunabhängig sein, so dass mir
auch Programmierer, die nicht des Java mächtig sind, evtl. hier
an dieser Stelle weiterhelfen können.
Besten Dank schonmal.
Grüße aus Berlin
Christopher
Hi,
um es mal in PHP auszudrücken:
preg_match("/(\d+)\s*(month|months|monate)/i", $string, $matches);
echo (int)$matches[1];
Grüße
Thomas
Moin!
Hi,
um es mal in PHP auszudrücken:
<?php
echo (int) '1 Monat';
?>
Geht immer, wenn die Zahl vorn steht...
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hi,
<?php
echo (int) '1 Monat';
?>
Geht immer, wenn die Zahl vorn steht...
Aber nicht in Java.
cu,
Andreas
Hi,
ich stehe auf dem Schlauch was das Auslesen einer in einem String
enthaltenen Zahl mittels einer Regular Expression angeht. Und zwar
möchte ich gerne aus dem String "1 month" (oder aber auch "1month",
"2 months", "3 Monate") die Anzahl der Monate auslesen und schließ-
lich als Integer Wert behandeln können.Ich denke die RegExp dürfte sprachenunabhängig sein, so dass mir
auch Programmierer, die nicht des Java mächtig sind, evtl. hier
an dieser Stelle weiterhelfen können.
Du brauchst also ggf. beliebig viele Leerzeichen zum Wegschmeißen gefolgt von zu merkenden beliebig vielen Ziffern gefolgt von mindestens einer Nicht-Ziffer.
*([0-9]+)
Wenn ich mich richtig erinnere, versucht Java im Normalfall, den ganzen String zu matchen, also noch für den Kram nach den Ziffern ein .* anhängen.
*([0-9]+).*
cu,
Andreas
Hi,
*([0-9]+)
*([0-9]+).*
Am Anfang sollte jeweils ein Leerzeichen stehen - wieso das hier unterschlagen wird, weiß ich nicht.
cu,
Andreas