Ruby 如何将匹配的正则表达式作为字符串存储在变量中

Ruby 如何将匹配的正则表达式作为字符串存储在变量中,ruby,regex,expression,Ruby,Regex,Expression,有人知道如何将匹配的正则表达式作为字符串存储在变量中吗?如果我的字符串是“police”,并且我的正则表达式与之匹配以获得结果为“ice”,我如何将“ice”存储在变量中?我猜是匹配、扫描和到方法 我计划使用存储的字符串(使用regex)传递到RAILS中aws sdk的树接口方法中的:prefix选项,以与aws-s3对象交互。在Ruby中使用正则表达式有很多方法。使用match操作符,可以得到一个MatchData对象,它可以通过to_s方法转换为字符串。如果您的正则表达式不匹配,您将得到n

有人知道如何将匹配的正则表达式作为字符串存储在变量中吗?如果我的字符串是
“police”
,并且我的正则表达式与之匹配以获得结果为
“ice”
,我如何将
“ice”
存储在变量中?我猜是
匹配
扫描
方法


我计划使用存储的字符串(使用regex)传递到RAILS中aws sdk的树接口方法中的:prefix选项,以与aws-s3对象交互。

在Ruby中使用正则表达式有很多方法。使用
match
操作符,可以得到一个MatchData对象,它可以通过
to_s
方法转换为字符串。如果您的正则表达式不匹配,您将得到nil而不是MatchData对象

my_match = /ice/.match("police");
my_var = my_match.to_s;
或者一次完成所有工作。如果正则表达式不匹配,您将得到一个空字符串

my_var = /ice/.match("police").to_s;

有很多选择,但是:

my_variable = /ice/.match("police")[0]

将匹配的表达式分配给
我的\u变量

。如果您要给我打电话,请告诉我原因。我可以学到一些东西。谢谢你的回答,这很有效。我刚刚意识到我面临的问题不是正则表达式。这就是我试图将参数(文件路径:例如user/lauren/tools/)从RAILS中的视图传递到另一个控制器的问题。我想使用要与正则表达式匹配的文件路径(作为字符串)。要做到这一点,现在我在控制器操作中使用params[:parameter]方法,如下所示,我在其中设置变量实例:@variable=/^.+\/[^\/]+$/.match(params[:name])。感谢您对此的看法…谢谢!如果文件路径以“/”结尾,如示例中所示,则regex^.+\/[^\/]+$将不匹配。如果将\/添加到结尾,它将与结尾“/”匹配。如果将其设置为可选,则将获得一个匹配项,该匹配项包含或不包含结尾“/”。下面是允许可选尾部斜杠的正则表达式。^+\/[^\/]+[\/]*$