我正在尝试使用正则表达式在 vim 中搜索/替换模式/替换/。
我有一个 Java 文件,它试图检查天气数据变量是否已设置,以及是否执行一件事,如果没有则忽略将其处理为 JSON 格式。我在另一个类中编写了一个方法(称为 StumpJunk.isSet - 与 PHP isset 一样,通过检查是否为 null 或为空)
我以前的做法是 if (varName != null)
我想要的新模式是 if (StumpJunk.isset(varName))
我在 VIM 中尝试了多种正则表达式方法,但没有成功:
:%s/if (\(.*\)) != null)/(StumpJunk.isSet(\1))/g
:%s/if \(\(.*\)\) \!\= null\)/\(StumpJunk.isSet\(\1\)\)/g
:%s/if \v\((.*)\) \!\= null\)/(StumpJunk.isSet(\1))/g
:%s/if \v\((.*)\) \!\= null\)/(StumpJunk.isSet("\1")/g
每次它回来都会说找不到模式:
Pattern not found: \vif\((.*) \!\= null\)
答案1
)
第一个模式中有太多,并且缺少if
替换:
:%s/if (\(.*\) != null)/if (StumpJunk.isSet(\1))/g