2008-12-11 4 views
2

Je refactorisons mon code et je suis à la recherche d'une solution à grep mes fichiers source pour quelque chose commeQuelle est la meilleure façon de trouver et de remplacer le code "! = Null" avec andand?

if (user && user.name && user.name.length() < 128) ... 

afin de le remplacer plus tard avec Ruby etet ou Groovy?. opérateur (opérateur de navigation sécurisé).

+0

Vous cherchez l'expression régulière pour le faire? –

+0

Oui, si cela est possible ce serait bien. – about

+0

elvis a quitté le bâtiment ... –

Répondre

2

Voici quelque chose pour vous aider à démarrer, je me demande si cela peut être généralisé plus sans avoir à générer l'expression rationnelle programatically

line = "user && user.name && user.name.length()" 
p line.match(/(?:(\w*)(?:\s\&\&\s(\1\.(\w*)))(?:\s\&\&\s(\2\.(\w*))))/).to_a. 
    reject {|m| m.match(/\./)}.join('.andand.') 

=> "user.andand.name.andand.length" 
Questions connexes