在一些别人写的,人们已经使用null
检查条件为null!=abc
或null==abc
这个Java代码,但我需要分别将其更改为abc!=null
和abc==null
。搜索在Java代码中一些字符串和替换它
有人告诉我,这可以很容易地使用正则表达式来完成,因为直到现在我正在执行手动任务,但是搜索它然后手动替换它。
在一些别人写的,人们已经使用null
检查条件为null!=abc
或null==abc
这个Java代码,但我需要分别将其更改为abc!=null
和abc==null
。搜索在Java代码中一些字符串和替换它
有人告诉我,这可以很容易地使用正则表达式来完成,因为直到现在我正在执行手动任务,但是搜索它然后手动替换它。
我不知道所有这可能是在布尔表达式的右侧的要求,但假设它是一个变量名,\w
将是一个大致精确的搜索(见http://download.oracle.com/javase/tutorial/java/nutsandbolts/variables.html变量的完整规范名)。
搜寻字符串:
null\s*([!=]=)\s*(\w+)
替换字符串
$1 $2 null
它不能使用正则表达式正确。
考虑
/*
Print whether null==abc.
*/
System.out.print("null==abc : " + (null==abc));
如果你想只改变代码,第三null==abc
以上,那么你可以通过使用天真正则表达式得到的字符串和评论内容意外更改替换更改代码。
而且你要小心不要改变
null==abc.def
到
abc==null.def
或改变
null==abc(def)
到
abc==null(def)
如果您对潜在的字符串和注释更改感到满意,并且要检查更改以确保您没有打破任何方法调用,那么您可以在perl中始终执行此操作。
perl -i.bak -pe 's/null(\s*[!=]=\s*)([\w.]+)/$2$1null/g' YourJavaFile.java
出于好奇:你为什么要改变它? – Howard
@haward:其中一位经理告诉我..即使我不知道为什么..只是我需要改变.. –
你在做什么编辑/环境/ ide - 这与你如何做正则表达式 – antlersoft