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

Zor*_*lac 1 java regex lookahead

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

"090909" => "XX09XX09XX09"
Run Code Online (Sandbox Code Playgroud)

这段代码:

String s = "090909";
String ns = s.replaceAll("(?=\\d\\d)", "XX");  
Run Code Online (Sandbox Code Playgroud)

......不起作用; 输出是XX0XX9XX0XX9XX09.但是这段代码有效:

String s = "090909";
String ns = s.replaceAll("(?=09)", "XX");  
Run Code Online (Sandbox Code Playgroud)

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

mar*_*ema 5

您可以使用以下内容:

String s = "090909";
String ns = s.replaceAll("(\\d\\d)", "XX$1");  
Run Code Online (Sandbox Code Playgroud)

()将创建捕获$1访问捕获.