在这个其他人编写的java代码中,人们使用null
检查条件为null!=abc
或null==abc
,但我需要将其更改为abc!=null
并且分别为abc==null
。
有人告诉我,这可以很容易地使用正则表达式完成,因为直到现在我正在执行手动任务,但是搜索它然后手动替换它。
答案 0 :(得分:3)
我不知道布尔表达式右侧的所有要求,但假设它是变量名,\w
将是粗略准确搜索(有关变量名称的完整规范,请参阅http://download.oracle.com/javase/tutorial/java/nutsandbolts/variables.html。
搜索字符串:
null\s*([!=]=)\s*(\w+)
替换字符串
$1 $2 null
答案 1 :(得分:0)
使用正则表达式无法正确完成。
考虑
/*
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