Ich bin neu bei regulären Ausdrücken und frage mich, wie ich nur die erste Zahl in einer Zeichenfolge wie 100 2011-10-20 14:28:55 bekommen könnte. In diesem Fall möchte ich, dass es 100 zurückgibt, aber die Nummer könnte auch kürzer oder länger sein.
Ich habe über etwas wie [0-9] + nachgedacht, aber es braucht jede einzelne Zahl separat (100,2001,10, ...)
Danke.
Versuchen Sie, die erste Zahl in der Zeichenkette (die nicht am Anfang der Zeichenkette liegen darf) zu finden:
%Vor%Dies beginnt am Anfang, überspringt alle Nicht-Ziffern und stimmt mit der ersten gefundenen Ziffernfolge überein
BEARBEITEN: Dieser Regex wird der ersten Gruppe von Zahlen entsprechen, aber, wie in anderen Antworten erwähnt, ist parseInt eine bessere Lösung, wenn Sie wissen, dass die Zahl am Anfang der Zeichenfolge steht
Nur
%Vor%Wenn Sie immer Platz nach der ersten Nummer haben, funktioniert dies
[0-9] bedeutet, dass die Zahlen 0-9 verwendet werden können, das + bedeutet 1 oder mehrere Male. Wenn Sie [0-9] {3} verwenden, erhalten Sie 3 Zahlen
Probieren Sie ^(?'num'[0-9]+).*$
aus, wodurch er am Anfang beginnt, eine Zahl liest, auf 'num' speichert und den Rest ohne Bindung verbraucht.
Diese String-Erweiterung funktioniert auch dann einwandfrei, wenn String nicht mit Zahl beginnt. geben Sie jeweils 1234 zurück - "1234asdfwewf", "% sdfsr1234" "## # 1234"
%Vor%