Используя Regex, чтобы получить несколько значений из строки и поместить их в массив? - PullRequest
0 голосов
/ 16 марта 2011

Попытка получить два значения $ и значение X из этой строки в Ruby / watir:

16,67%: $ xxx.xx вниз, включает в себя плату за политику и x взносов в размере $xxx.xx

Пока у меня есть:

16.67%:\s+\$(\d+.\d{2}) 

, который получает первый штраф xxx.xx, что мне нужно добавить к нему, чтобы получить последние двапеременные и загрузить все это в массив?

Ответы [ 5 ]

0 голосов
/ 18 марта 2011

/ \ $ (\ d +. \ D {2}). + \ $ (\ D +. \ D {2}) / должны это сделать.не имеет значения, какой там текст, только то, что в предложении два "$".

0 голосов
/ 16 марта 2011

Рассматривали ли вы просто разбиение строки на символ $?, А затем манипулирование тем, что вы получаете, с помощью регулярных выражений или основных строковых команд?

0 голосов
/ 16 марта 2011

Вам лучше использовать сканирование.

sub(/.*%/, '').scan(/\$?([\d\.]+)/)
0 голосов
/ 16 марта 2011

Вы можете использовать следующее, но регулярное выражение может быть ненужным, если окружающий текст всегда одинаков:

\$(\d+.\d{2}).*?(\d+) installments.*?\$(\d+.\d{2})

http://www.rubular.com/r/sk5wO3fyZF

0 голосов
/ 16 марта 2011

если вы знаете, что текст между ними всегда будет одинаковым, вы можете просто:

16.67%:\s+\$(\d+.\d{2}) down, includes the Policy Fee, and x installments of (\d+.\d{2})
...