2

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

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

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

4

2 回答 2

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"
于 2008-12-12T14:15:58.077 回答
1

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

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

于 2008-12-11T13:40:36.677 回答