确定字符串是否包含任何一组字符串

时间:2011-01-28 21:43:38

标签: ruby string

我正在使用Mechanize与几个网页进行互动,而我正在尝试确定某个表单提交是否会导致错误。

现在我正在这样做:

agent.page.body.include?("I'm an error message!")

但我刚刚发现另一个错误消息。因为我不想这样做:

agent.page.body.include?("I'm an error message!") || agent.page.body.include?("Another error message")

如何确定页面正文是否包含 错误消息?

2 个答案:

答案 0 :(得分:23)

error_messages.any? { |mes| agent.page.body.include? mes }

答案 1 :(得分:10)

或者,在一个Regex传递中执行:

error_messages = /I'm an error message!|Another error message/
if agent.page.body =~ error_messages
  ...
end

您需要确保转义包含特殊正则表达式字符的任何错误消息。为了使其可维护:

if agent.page.body =~ Regexp.union("foo", "bar", "jim.bob", "jam|jam")
  ...
end

如果你已经测试,你应该只使用这个,但是发现Nakilon答案的速度还不够。 :)