使用replaceAll和regex预先添加字符串

时间:2011-03-04 01:04:56

标签: java regex lookahead

我无法弄清楚如何使用正向前瞻创建正则表达式。我们的想法是在长字符串中为每两个字符添加两个字符串。即。

"090909" => "XX09XX09XX09"

此代码:

String s = "090909";
String ns = s.replaceAll("(?=\\d\\d)", "XX");  

......不起作用;输出为XX0XX9XX0XX9XX09。但是这段代码可行:

String s = "090909";
String ns = s.replaceAll("(?=09)", "XX");  

我很困惑如何为每两个字符提出一个表达前瞻性的表达方式。我错过了一些界限吗?

1 个答案:

答案 0 :(得分:5)

您可以使用以下内容:

String s = "090909";
String ns = s.replaceAll("(\\d\\d)", "XX$1");  

()将创建capture$1将访问捕获。