我尝试通过正则表达式替换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().]+)\\)"