Java递归/重复正则表达式

时间:2015-06-22 16:36:20

标签: java regex

我正在尝试将所有(句点)替换为关键字 XXX ,这些关键字位于大文本的字母数字字词中。

例如:I am trying to match a.b.c.d.e ...
预期输出:I am trying to match aXXXbXXXcXXXdXXXe ...

我使用的模式:(\w+)([\.]+)(\w+)
实际结果:I am trying to match aXXXb.cXXXd.e ...

如何在不使用任何代码/存根的情况下通过正则表达式获得预期输出

2 个答案:

答案 0 :(得分:1)

您可以使用外观:

str = str.replaceAll("(?<=[a-zA-Z0-9])\\.(?=[a-zA-Z0-9])", "XXX");

RegEx Demo

Lookaround Reference

答案 1 :(得分:0)

为什么不做某些事情,如果你想改变一切。 -

str = str.replaceAll("\\.", "XXX");

如果你不想改变,请在下面。如果有任何第一个或最后一个索引 -

str = str.replaceAll("\\.", "XXX").replaceAll("^XXX", ".").replaceAll("XXX$", ".");