【发布时间】:2015-02-09 10:28:47
【问题描述】:
我有一个返回页面标题的方法。标题可以返回包含剧集信息和不包含剧集信息的字符串。例如:“朋友可以聊天”和“第12集空心人”我需要在最后的字符串上使用正则表达式并返回它。
title = row.at("h3")
.try(:children)
.try(:first)
.try(:text)
.try(:strip)
.try(:[], /(Episode \d+ [–-]\s*)(.*)/,2)
在这里我得到 Hollow man 作为标题,因为它包含剧集信息并且正则表达式在这里匹配。 但在第一种情况下,它返回 nil,因为“朋友可以聊天”没有剧集信息,因此在匹配正则表达式时它会返回 nil。
那么我怎样才能有效地返回它。我可以使用像
title = row.at("h3")
.try(:children)
.try(:first)
.try(:text)
.try(:strip)
title = title.try(:[], /(Episode \d+ [–-]\s*)(.*)/,2) \
if title && title.try(:[], /(Episode \d+ [–-]\s*)(.*)/,2)
任何其他我可以有效返回的方式。
【问题讨论】:
标签: ruby-on-rails ruby regex