我尝试通过正则表达式替换String。

目标字符串:

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().]+)\\)"

10-05 21:36