正则表达式匹配如果字符串A出现在使用Ruby的页面上的字符串B之前

时间:2012-03-16 17:19:47

标签: ruby regex

我有一个生成的HTML页面,我希望字符串“A”出现在页面上的字符串“B”之前。 (注意,A和B可以在页面上的不同行中,其间包含任意字符串/字符。

我正在尝试创建一个检查此条件的正则表达式。

这就是我所拥有的

regexp = Regexp.new ".*#{S1}.*#{s2}"
match = page.body ~= regexp

其中S1和S2分别是字符串“A”和“B”。

在B匹配之前出现A的页面上执行此操作后仍然返回nil。

2 个答案:

答案 0 :(得分:5)

尝试:

match = /.*#{S1}.*#{S2}/m =~ page.body

编辑(作者:Dennis Mathews,2012-03-16):第一个。*不是必需的......所以工作代码是

match = /#{S1}.*#{S2}/m =~ page.body

答案 1 :(得分:4)

为什么要使用正则表达式?只需使用字符串索引比较:

first = page.body.index(S1) or return false
second = page.body.index(S2, first) or return false
return true