我尝试通过正则表达式替换字符串。
目标字符串:
if (ValidationUtil.checkNullable(groupDataObject) || !groupDataObject.isNotificationEnable() ||
正则表达式
.*(ValidationUtil\DcheckNullable)([a-zA-Z0-9]*).*
替换模式
$2 == null
如意的结果:
if (groupDataObject == null || !groupDataObject.isNotificationEnable() ||
而且没有成功。它产生结果== null
。我做错了什么?
最佳答案
您可以使用以下正则表达式:
(ValidationUtil\DcheckNullable)\(([a-zA-Z0-9]*)\)
^^ ^^
我删除了 .*
并添加了 \(
和 \)
。
请参阅regex demo
如果您还需要匹配括号和点,只需将它们包含在字符类中即可:
(ValidationUtil\DcheckNullable)\(([a-zA-Z0-9().]+)\)
^^^
查看此regex demo
请注意,您可以使用点代替 \D
,只需记住在 Java 字符串文字中应使用双反斜杠对其进行转义: String pat = "(ValidationUtil\\. checkNullable)\\(([a-zA-Z0-9().]+)\\)"
关于Java正则表达式替换文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37157962/