如何使用正则表达式gsub这个字符串?

时间:2011-09-19 14:23:32

标签: ruby regex

好的,这是相当尴尬但我有这个字符串:

>> t1
=> ["name: Big Lebowski\n"]

然后我想用""

替换整行
>> t2 = t1.collect{|n| n.gsub("/^name.*$/", "")}
=> ["name: Big Lebowski\n"]

我得到同样的东西。是什么给了什么?

2 个答案:

答案 0 :(得分:3)

您已将正则表达式放在字符串中,这显然不起作用。

>> t2 = t1.collect{|n| n.gsub(/^name.*$/, "")}
=> ["\n"]

如果您还想删除换行符,请使用m正则表达式修饰符。

>> t2 = t1.collect{|n| n.gsub(/^name.*$/m, "")}
=> [""]

答案 1 :(得分:-3)

那是因为你在你的块中使用“gsub”而不是“gsub!” - 最后一个修改目标。尝试:

t2 = t1.collect{|n| n.gsub!("/^name.*$/", "")}