Ich möchte am Anfang jeder Zeichenfolge eine Zahl finden:

1000_lang sorting_1 ghhgf_1002
1001_lang
100_abcdefg_sgdga_10001_321gg hjdshjdg

Also werde ich Zahlen haben: 1000, 1001, 100. Grundsätzlich möchte ich eine Zahl aus einer Zeichenfolge abgleichen, bis diese Zahl auf den ersten Unterstrich trifft. Zahlen können jedoch beliebig lang sein. Wenn es sich also um 12345_eyquyewuq_32136 df_1999 handelt, benötige ich 12345. Nach dem ersten Unterstrich sind keine weiteren Zahlen erforderlich.

0
Kanan Farzali 28 Nov. 2013 im 19:34

4 Antworten

Beste Antwort
^\d+

Holen Sie sich alle Zahlen vom Anfang der Zeile bis zur ersten Nicht-Zahl

str = "123456_wibble";
patt = /^\d+/;
result = str.match( patt);

Das Ergebnis ist eine Reihe von Übereinstimmungen. Solange also 1 oder mehr vorhanden sind, haben Sie etwas gefunden

Siehe Mozilla Regular Expressions

2
vogomatix 28 Nov. 2013 im 15:49

Etwas wie das....

var str = '1000_lang sorting_1 ghhgf_1002',
    matches = str.match(/^\d+/)
console.log(matches)
0
John McNulty 28 Nov. 2013 im 16:05

Diese Antwort ist nur Javascript, kann aber nützlich sein, wenn Sie sich nicht für Regex interessieren:

var str = "1000_lang sorting_1 ghhgf_1002";
var result = str.split("_")[0];

Ergebnis enthält die erste Zahl.

2
Shryme 28 Nov. 2013 im 15:39

\b\d+

Dabei ist \b eine Grenze (d. h. der Beginn einer Zeile) und \d+ stimmt mit so vielen Ziffern wie möglich überein.

-1
kjhf 28 Nov. 2013 im 15:39