我有一个字符串变量:
e = 'mystring'
如何匹配字符串'abcd mystring abcd'
?
我试过了
'abcd mystring abcd' =~ /e/
'abcd mystring abcd' =~ /(e)/
'abcd mystring abcd' =~ /#{e}/
但他们都没有产生匹配。
我发现了问题,实际上我正在使用
'abcd mystring abcd' =~ /(.*)#{e}(.*)/
没有匹配,因此我认为/#{e}/
也不会给出匹配。
我认为返回值0意味着匹配失败......事实证明只有nil意味着失败。
答案 0 :(得分:3)
如果要从字符串创建正则表达式,可以使用new()
constructor:
'abcd mystring abcd' =~ Regexp.new(e)
答案 1 :(得分:0)
您还匹配所需的字符串,如
e =' mystring'
' abcd mystring abcd' .match(/#{e} /)
如果匹配则返回MatchData对象,否则返回nil。