Regex, um die erste Zahl in der Zeichenfolge zu erhalten: 100 2011-10-20 14:28:55

9

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.

    
ratsimihah 21.10.2011, 19:07
quelle

9 Antworten

3

Versuchen Sie, die erste Zahl in der Zeichenkette (die nicht am Anfang der Zeichenkette liegen darf) zu finden:

%Vor%     
Victor Sorokin 21.10.2011, 19:15
quelle
13
%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

    
hair raisin 21.10.2011 19:10
quelle
6

Nur

%Vor%

Wenn Sie immer Platz nach der ersten Nummer haben, funktioniert dies

    
Pierre Lab 21.10.2011 19:10
quelle
4

Angenommen, es gibt immer einen Abstand zwischen den ersten beiden Zahlen, dann

%Vor%

Aber für so etwas wäre es besser, einfache String-Operationen zu verwenden:

%Vor%

Regexs sind rechenintensiv und sollten nach Möglichkeit vermieden werden.

    
Marc B 21.10.2011 19:10
quelle
3

würde der folgende Code den Trick machen.

%Vor%     
Vivek Viswanathan 21.10.2011 19:10
quelle
1

[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

    
orangegoat 21.10.2011 19:10
quelle
1

Probieren Sie ^(?'num'[0-9]+).*$ aus, wodurch er am Anfang beginnt, eine Zahl liest, auf 'num' speichert und den Rest ohne Bindung verbraucht.

    
Daniel Moore 21.10.2011 19:11
quelle
1

Diese String-Erweiterung funktioniert auch dann einwandfrei, wenn String nicht mit Zahl beginnt. geben Sie jeweils 1234 zurück - "1234asdfwewf", "% sdfsr1234" "## # 1234"

%Vor%     
Martin Topolsky 22.03.2013 14:28
quelle
0
%Vor%     
DHIVYA N 13.08.2017 13:38
quelle

Tags und Links