2010-01-05 40 views
4

我如何取代这个:做一个GSUB通话而不是5

lyrics = lyrics.gsub(/\n/,'').gsub(/^\{\"similar\": \[/, '').gsub(/\]\}$/, '').gsub(/^\{/, '').gsub(/\}$/, '') 

的东西短,一个GSUB打电话?

+2

工作给予一定的主题,以测试正则表达式 - 与所有GSUB的实在是有点硬。 – hsz 2010-01-05 20:51:18

+0

Like:{“similar”:[...]} – mroztn 2010-01-07 23:47:07

回答

9

通过使用替代符号|并在正则表达式中创建分支,可以将多个正则表达式合并为一个正则表达式。注意像^$等锚,因为如果它们出现在一个分支,他们只为分支,而不是整个正则表达式

lyrics = lyrics.gsub(/\n|^\{\"similar\": \[|\]\}$|^\{|\}$/, '') 
+1

你可以结合'\] \'$'和'\} $'来代替:'\]?\} $'。 – kejadlen 2010-01-05 21:53:06

+2

也许,但我没有想到这个正则表达式匹配什么。我刚刚删除了'/,'')。gsub(/'和插入'|'代替:-) – MBO 2010-01-05 22:33:43