我正在尝试匹配
驱动程序。在
def fun
driver.find_element(:link_text, "Standard Menu Rates").click
driver.find_element(:id, "jpform:fromStation").send_keys("HOSUR - HSRA")
@driver.find_element(:id, "jpform:toStation").send_keys("SATUR - SRT")
所以我必须编写以下正则表达式
^driver.
但司机。在这个词前面有一些空间,所以它不匹配,我怎么能消除空间以及坚持字符串的开头作为驱动程序而不是@driver或没有任何其他字?
输入
def fun
driver.find_element(:link_text, "Standard Menu Rates").click
driver.find_element(:id, "jpform:fromStation").send_keys("HOSUR - HSRA")
@driver.find_element(:id, "jpform:toStation").send_keys("SATUR - SRT")
输出
driver.find_element(:link_text, "Standard Menu Rates").click
driver.find_element(:id, "jpform:fromStation").send_keys("HOSUR - HSRA")
而且,
我知道要匹配""但是我如何匹配双引号之外的那些词呢?
输入
# 0 = {String@3546} "Policy Duration (Days)"
# 1 = {String@3547} "Related Proposal Nr."
输出
# 0 = {String@3546}
# 1 = {String@3547}
答案 0 :(得分:2)
根据您的评论,您希望匹配行的开头,然后匹配同一行中的任意数量的空格,然后driver
然后点。
您需要使用[[:blank:]]*
(它将匹配任何0 + Unicode水平whitesdace字符)。另请注意,.
应转义为与文字.
匹配。
使用
/^[[:blank:]]*driver\./
请参阅Rubular demo
<强>详情
^
- 开始行[[:blank:]]*
- 0+ 水平空白字符driver
- 文字子字符串\.
- 一个点。对于第二部分,您可以使用
从字符串中删除"..."
子字符串
s.gsub(/[[:blank:]]*"[^"]*"$/, '')
请参阅此Rubular demo
或者,如果您希望匹配 行部分直到第一个"
,您可以使用
/^[^"\r\n]+/
答案 1 :(得分:1)
你可以使用正则表达式
^\s*\bdriver\.
其中\ b表示边界。检查regex101 demo
对于第二部分,您可以替换引号内的字符串。剩余的字符串将是必需的字符串,请参阅regex101 demo