2010-01-05 43 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