Как я могу разобрать этот текст с помощью регулярных выражений (ruby)? - PullRequest
0 голосов
/ 26 сентября 2010

http://services.tvrage.com/tools/quickinfo.php?show=Chuck

Я пытаюсь разобрать эту информацию, например, получить эфирное время,

эфирное время @ понедельник в 08:00 вечера

Я хочу получить то, что после"эфирного времени @" до конца строки, чтобы просто выйти с "понедельником в 08:00 вечера". Как я могу это сделать?

Ответы [ 5 ]

3 голосов
/ 26 сентября 2010

Есть ли причина, по которой вы не используете каналы XML?

require 'open-uri'
require 'nokogiri'

d = Nokogiri.XML(open 'http://services.tvrage.com/feeds/showinfo.php?sid=15614')

name = d.search('//showname').text               # => 'Chuck'
day  = d.search('//airday').text                 # => 'Monday'
time = d.search('//airtime').text                # => '20:00'
net  = d.search('//network[@country="US"]').text # => 'NBC'

puts "#{name} airs #{day}s at #{time} on #{net}."
# Chuck airs Mondays at 20:00 on NBC.
2 голосов
/ 26 сентября 2010
result = allyourtextdata[/Airtime@(.+)/,1]

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

hash = Hash[allyourtextdata.scan(/(.+?)@(.+)/)]
p hash["Airtime"] # this will print "Monday at 08:00 pm"
1 голос
/ 26 сентября 2010
require 'net/http'
url=URI.parse('http://services.tvrage.com/tools/quickinfo.php?show=Chuck')
response = Net::HTTP.get_response(url)
data=response.body
puts data.scan(/.*Airtime@(.*)\n/)
0 голосов
/ 27 сентября 2010

Это отличный сайт для тестирования выражений ruby ​​regex: http://rubular.com/

0 голосов
/ 26 сентября 2010

Почему регулярное выражение?Любая проблема с получением подстроки?

s = "Airtime@Monday at 08:00 pm"
puts s[8..-1] # => Monday at 08:00 pm

edit
ок, это для других вариантов

puts s[s.index('@') + 1..-1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...