使用andand查找和替换“!= null”代码的最佳方法是什么?

时间:2008-12-11 13:25:44

标签: ruby groovy null grep

我重构了我的代码,我正在寻找一个解决方案来grep我的源文件,比如

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

为了以后用ruby和and或groovy替换它?操作员(安全导航操作员)。

2 个答案:

答案 0 :(得分:2)

这里有一些让你入门的东西,我想知道这是否可以更加概括而不必以编程方式生成正则表达式

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"

答案 1 :(得分:1)

IntelliJ idea有一个“结构搜索和替换”,可以让你这样做。这理解了语言的语义,因此您可以进行各种有趣的替换操作。

http://www.jetbrains.com/idea/documentation/ssr.html