Я пытаюсь сопоставить строку с неразрывным пространством (
) с переменной, содержащей строку с обычным пространством. Строка, которую я ищу, это текст в HTML-ссылке/якоре, и я использую Watir (обратите внимание на неразрывное пространство).Ruby Regex и строковая переменная
<a onlick='DoSomthing()' href=''>Some Text</a>
По-видимому, существует разница между регулярным выражением, созданным //, и Regex.new.
Интерактивная Рубин говорит, что справедливо следующее (где my_text = 'Some Text'):
/Some Text/ == Regexp.new(my_text)
Но пока это возвращает True:
browser.link(:text, /Some Text/).exists?
Это не:
browser.link(:text, Regexp.new(my_text)).exists?
И это не делает:
browser.link(:text, /#{my_text}/).exists?
Я также попытался следующие без везения:
Regexp.new(my_text.gsub(' ', '[[:space:]]'))
Кто-нибудь знает, как я могу выполнить этот матч?
Если вы создаете страницу, на которой есть только одна ссылка, выполните указанные выше действия? Они работали на меня, когда я их пробовал (при использовании watir-webdriver с Firefox). –