Я создал запрос на получение, который возвращает тело ответа веб-страницы. Я пытаюсь использовать регулярное выражение для сопоставления всех экземпляров name = "valuehere" и возврата всех экземпляров "valuehere".
Мне удалось получить тело ответа, чтобы я возвращал следующие данные.
"name = \" firstparameter \ "", "name = \ secondparameter \" "," name = \ "thirdparameter \" "," name = \ "четвертый параметр \" "
Регулярное выражение работает правильно, так как следующий код позволяет мне печатать первый найденный параметр несколько раз.
response = request.response #gets the full response body of a page and saves to response
puts response.code # prints the http response code
parameters = response.body.split(" ").grep(/name=/) #split the response into an array and grep for anything with name=
parameters.each do |x|
x = parameters.to_s.match(/(?<=\\\").*?(?=\\")/i) #converts array to string and performs regex match()
puts x
end
Проблема в том, что я хочу вернуть значение name = "valuehere" для каждого экземпляра, а не только первый.
Метод grep нельзя использовать в каждом методе, по-видимому, и я также попробовал следующее:
parameters.each do |x|
puts x.match(/(?<=\\\").*?(?=\\")/i) #converts array to string and performs regex match()
Я считаю, что проблема заключается в том, как я выводить результаты поиска по регулярному выражению.