使用gsub删除多个字符

时间:2011-05-09 04:10:30

标签: ruby gsub

我有一个包含以下字符串"XXXXyyyy!!!!zzzz"

的对象

XXXX - 永远不变,永远改变,可能是一百万个字符长 yyyy - 永远不会改变,确切的字符数量 !!!! - 这是我在清理字符串后想要生成的数据。这些数据也会一直变化 zzzz - 永远不会改变,确切的字符数

所以如果:

string = "XXXXyyyy!!!!zzzz"  
string.gsub("zzzz","")  
# => "XXXXyyyy!!!!"

接下来我只能做"!!!!"。如何使用'yyyy'(静态)删除"XXXXyyyy"并仅保留"!!!!"。我希望这能解释我的问题。抱歉,最后一个。

2 个答案:

答案 0 :(得分:3)

你应该一次性完成:

string[/yyyy(.*)zzzz\z/, 1]  

答案 1 :(得分:1)

从第一次尝试开始,如果您将其更改为:

string = "if(location.hostname.indexOf( 'edition.' ) > -1) {document.write('May 8, 2011 -- updated 1854 GMT (0254 HKT)');} else {document.write('May 8, 2011 2:54 p.m. EDT');}"

string.gsub(/^.+else.+'(.+)'.+$/, $1)

应该这样做。