2016-09-03 4 views

Antwort

2

Regulärer Ausdruck, den Sie benötigen, besteht aus einem + Quantifizierer (ein oder mehrere Male - gierig), einer numerischen Zeichenklasse [0-9] und einer einfangenden Gruppe (...).

str = "Displaying Results Items 1 - 50 of 120, Page 1 of 3" 
print str.match(/Page +[0-9]+ +of +([0-9]+)/)[1] 

Live demo

Erläuterung:

Page +  # Match `Page` and any number of spaces (one or more) 
[0-9]+  # Then any number of digits (one or more) 
+of  # Then any number of spaces (one or more) followed by `of` 
+   # Then any number of spaces (one or more) 
([0-9]+) # Finally up to another sequence of digits - captured by constructing a capturing group 

Es gibt eine gute reference here mehr über reguläre Ausdrücke zu lernen.

1

können Sie

tun
str.scan(/Page \d+ of (\d+)/) #=> [["3"]] 

Es wird versucht, das Muster der „Seite # von #“ und die Gruppe des letzten Captures greifen zu lassen. Dies funktioniert, wenn Sie ein Vielfaches des gleichen Musters in der Zeichenfolge haben, es wird alles ein Teil des resultierenden Arrays sein.

Verwandte Themen