Ruby / Regex:使用gsub和regex处理包含正斜杠和括号的字符串

时间:2015-10-24 06:26:10

标签: ruby regex watir watir-webdriver gsub

您好我正在使用Watir点击一些链接。我转到一个页面,根据其文本单击一个链接,再次单击一个新链接。我正在根据文本找到链接(这是我可以基于HTML的唯一方法)并且需要将我从页面中提取的文本与链接相匹配。我得到的文本包含一些额外的文本,而不是链接的一部分,所以我需要gsub出来。这是我的问题:

字符串:Nuclear Launch Codes (Levels One/Two) Blah Blah Blah

链接:/#{text}/

因为链接并不总是具有我需要找到的确切文本,所以:"Nuclear Launch Codes (Levels One\/Two)"

问题是返回Nuclear Launch Codes (Levels Four/Five)

我虽然我会把第一个括号和之后的所有内容都包括在内,但我需要保留它,因为我可以T(n) = 2^n - 1

无论如何修改字符串以匹配链接而忽略链接文本的其余部分?

1 个答案:

答案 0 :(得分:2)

如果我理解正确,请尝试:

/#{Regexp.escape(text)}/

或等效地,如果您愿意:

Regexp.new(Regexp.escape(text))

这将自动转义text中的括号,斜杠等等,因此不会将它们视为特殊的正则表达式字符。