2010-01-05 4 views
4

Comment puis-je remplacer:Faire un appel gsub au lieu de cinq

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

à quelque chose plus court et un gsub appel?

+2

Donnez quelques sujets à tester regexp - avec de tout ce gsub il est un peu difficile. – hsz

+0

Comme: {"similar": [...]} – mroztn

Répondre

9

Vous pouvez associer plusieurs expressions régulières en une en utilisant le symbole alternatif | et en créant des branches dans regex. Faites attention aux points d'ancrage comme ^, $ et d'autres, parce que si elles apparaissent dans une branche, ils ne travaillent pour cette branche, pas tout regex

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

Vous pouvez combiner '\] \} $' et '\} $' et utiliser ceci à la place: '\ \ \ \? – kejadlen

+2

Peut-être, mais je n'ai pas pensé à ce que cette expression régulière correspond. Je viens de supprimer '/, ''). Gsub (/' et inséré '|' à la place :-) – MBO

Questions connexes