Регулярное выражение для соответствия, если строка A появляется перед строкой B на странице с использованием Ruby - PullRequest
1 голос
/ 16 марта 2012

У меня есть сгенерированная HTML-страница, где я ожидаю, что строка «A» появится перед строкой «B» на странице.(Обратите внимание, что A и B могут находиться в разных строках на странице с произвольными строками / символами между ними.

Я пытаюсь создать регулярное выражение, проверяющее этот критерий.

Вотто, что у меня есть

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

, где S1 и S2 - строки "A" и "B" соответственно.

после выполнения этого на странице, где A появляется до совпадения с B, все еще возвращает ноль.

Ответы [ 2 ]

5 голосов
/ 16 марта 2012

Попробуйте:

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

Редактировать (Деннис Мэтьюз, 2012-03-16): Первый. * Не требуется .. поэтому рабочий код

match = /#{S1}.*#{S2}/m =~ page.body
4 голосов
/ 16 марта 2012

Зачем вообще использовать регулярные выражения? Просто используйте сравнения строк индекса:

first = page.body.index(S1) or return false
second = page.body.index(S2, first) or return false
return true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...