2009-06-29 4 views

Antwort

12

Wie wäre es so etwas wie:

text = "unkowntext60moreunknowntext25something" 
@width, @height = text.scan(/\d+/).map { |n| n.to_i } #=> 60, 25 
+0

Perfekt! Das war genau was ich gesucht habe :) – atmorell

2

Sie können einen regulären Ausdruck wie (\d+) verwenden, um alle Zahlen in der Zeichenfolge zu erfassen und anschließend die Erfassungsgruppen zu Iterieren, wobei jede in eine ganze Zahl konvertiert wird.

Edit: Ich weiß Ruby nicht, also habe ich diese Antwort in der Hoffnung, dass ein Rubyist ein Codebeispiel ausarbeiten würde.

4
@width, @height = "unkowntext60moreunknowntext25something".scan(/[0-9]+/) 
+0

diese gibt Strings, keine ganzen Zahlen –

+0

das stimmt, Sie leicht umwandeln können in int mit to_i aber etwas, es ist ganz gut, sie als Zeichenfolge zu halten (wenn die Der Empfänger muss keine Ganzzahlen erhalten, oder er wandelt sie wieder in Zeichenketten um (dies ist ein häufiger Fall, wenn Sie @width und @height in einem Rals-Helfer verwenden). –

Verwandte Themen