Java正则表达式替换文件中的String

时间:2016-05-11 09:10:35

标签: java regex

我尝试通过正则表达式替换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() || 。我做错了什么?

2 个答案:

答案 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}}