2016-04-08 4 views
0

Bei Text mit mehreren Nummern wieWie drei Werte mit einem Rubin regulären Ausdruck

showing 1 - 20 of 25 records 

extrahieren, wie könnte ich einen regulären Ausdruck verwenden, um alle Zahlen zu extrahieren? Ich hätte gerne einen Ausdruck, den wir leicht mit 'n'-Zahlen verwenden könnten.

Ich kann einfach verwenden

\d 

die drei Zahlen zu identifizieren, aber dann bin ich fest, wie jeder holen.

Bisher habe ich

\b\d\b 

zum ersten und

(\d+)(?!.*\d) 

für die letzte, aber ich kann die Mitte nicht herausgefunden.

+0

'input_str.scan (/ (\ b \ d + \ b) /). Jedes do | m |' – rock321987

+0

Ihr Beispiel hat alle positiven ganzen Zahlen, aber Sie haben nicht angegeben, ob negative Zahlen (oder Floats) kann anwesend sein. Wenn die Zeichenfolge negative ganze Zahlen enthalten kann, erfordert das Extrahieren zusätzliche Regeln. Betrachten Sie zum Beispiel "Zeige 1-20 von 25 Aufzeichnungen". –

+0

Siehe http://stackoverflow.com/questions/80357/match-all-occurrences-of-a-regex – sschmeck

Antwort

1

Just do:

"showing 1 - 20 of 25 records".scan(/\d+/) 

Der Anfang und das Ende jedes Spiels wird automatisch eine Nummer Grenze sein.

Verwandte Themen