2014-01-23 2 views
0

enter image description hereFetch Полный адрес на основе почтового индекса с помощью Regex

Я хотел бы, чтобы захватить адрес выделен красным цветом. «Местоположение сайта» можно легко идентифицировать с помощью match(). Тем не менее, как я могу захватить выделенную часть, не переходя исходящий контент, т. Е. «Вы применили ... и т. Д.». Обратите внимание, что продолжающийся контент не всегда начинается с «Вы применили».

Что я хотел бы сделать это следующим образом:

  1. Посмотрите на «Расположение сайта:»
  2. захватить что-нибудь после того, как «Расположение сайта:» до тех пор, пока не найдете пустой/пустой новой строки.

Может ли кто-нибудь помочь мне достичь этого в Ruby?

Обратите внимание, что весь текст хранится в строковой переменной.

ответ

0
regex = /\bSite Location:\s+(.*?)\n\s*\n/m 

str = "Site Location: Raglan Street 
         Collingwood Town, Some County 

You have applied..." 

if md = regex.match(str) 
    address = md[1].strip.gsub(/^\s+/,'') 
    puts address 
end 

Выход:

Raglan Street 
Collingwood Town, Some County 

Примечание: одна вещь, чтобы наблюдать за является возможность различных типов переводов строк. Например. Microsoft может использовать \r\n\r\n и т. Д., И в этом случае вам, возможно, придется настроить regex соответственно.

+0

Отлично. Regex - это то, что нужно воспринимать серьезно ... – user311509

Смежные вопросы