繁体   English   中英

如何将正则表达式作为参数传递给函数?

[英]How to pass a regular expression as an argument to a function?

以下代码行从下拉列表中正确选择“Joe Bloggs”:

browser.select_list(:id => "ListOwnerID").option(:text => /Joe Bloggs/).select # edited: added '.select'

如何将所有者的名称作为变量“list_owner”传递?

就像是:

def set_list_owner(list_owner)
    browser.select_list(:id => "ListOwnerID").option(:text => /list_owner/).select
end

用法:

set_list_owner("Joe Bloggs")

你可以使用Regexp::new

re_string = '\d'
Regexp.new(re_string) =~ 'abc 123'
# => 4

替代Cary Swoveland建议(正则表达式插值):

/#{re_string}/

def set_list_owner(list_owner)
    browser.select_list(:id => "ListOwnerID").option(:text => Regexp.new(list_owner))
end

set_list_owner("Joe Bloggs")

如果要按字面意思匹配字符串,而不是将其解释为正则表达式,请使用Regexp::escape

Regexp.new(Regexp.escape(list_owner))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM