Ruby匹配正则表达式中的String变量

时间:2014-05-29 05:53:49

标签: ruby regex

我有一个字符串变量:

e = 'mystring'

如何匹配字符串'abcd mystring abcd'

我试过了

'abcd mystring abcd' =~ /e/
'abcd mystring abcd' =~ /(e)/
'abcd mystring abcd' =~ /#{e}/

但他们都没有产生匹配。


我发现了问题,实际上我正在使用

'abcd mystring abcd' =~ /(.*)#{e}(.*)/

没有匹配,因此我认为/#{e}/也不会给出匹配。


我认为返回值0意味着匹配失败......事实证明只有nil意味着失败。

2 个答案:

答案 0 :(得分:3)

如果要从字符串创建正则表达式,可以使用new() constructor

'abcd mystring abcd' =~ Regexp.new(e)

答案 1 :(得分:0)

您还匹配所需的字符串,如

e =' mystring'

' abcd mystring abcd' .match(/#{e} /)

如果匹配则返回MatchData对象,否则返回nil。