Java正则表达式替换文件中的字符串

标签 java regex

我尝试通过正则表达式替换字符串。

目标字符串:

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/

相关文章:

java - 从数据库 hibernate hql 检索记录时出现空指针异常

java - Canvas 元素或动态表单生成器

javascript - 在 javascript 中用双引号提供时,正则表达式不起作用

Python Regex 去除数字和带标点符号的数字

java - 代号一键点击问题

java - Java中的无符号短

python - Pandas 提取以 [\s\d_/] 开头并以 [\s\d_/] 结尾的信息

python - 如何转义Python中所有未转义的斜杠

javascript - 多行正则表达式无法正常工作

java - 哪个 Java 包包含高等数学函数?