我尝试通过正则表达式替换String。
目标字符串:
<div>Dear {{$user->firstName}},</div>
How are you?....
正则表达式
if (ValidationUtil.checkNullable(groupDataObject) || !groupDataObject.isNotificationEnable() ||
替换模式
.*(ValidationUtil\DcheckNullable)([a-zA-Z0-9]*).*
一厢情愿的结果:
$2 == null
并没有奏效。它产生结果if (groupDataObject == null || !groupDataObject.isNotificationEnable() ||
。我做错了什么?
答案 0 :(得分:2)
您可以使用以下正则表达式:
.*
我删除了\(
并添加了\)
和(ValidationUtil\DcheckNullable)\(([a-zA-Z0-9().]+)\)
^^^
。
请参阅regex demo
如果您还需要匹配括号和圆点,只需将它们包含在字符类中:
\D
请参阅此regex demo
请注意,您可以使用点来代替String pat = "(ValidationUtil\\.checkNullable)\\(([a-zA-Z0-9().]+)\\)"
,只需记住它应该在Java字符串文字中使用双反斜杠进行转义:{{1}}
答案 1 :(得分:0)
$ 2为空,因为下一个组没有匹配,因为以下字符是(
.*(ValidationUtil\.checkNullable)\(([a-zA-Z0-9]*)\).*
尝试上述模式,它有\(
,然后跳过(并找到第2组匹配。如果您只想提取groupDataObject
,请添加尾随{ {1}}