1

我不知道如何使用积极的前瞻来创建正则表达式。这个想法是在长字符串中的每两个字符前面加上两个字符串。IE

"090909" => "XX09XX09XX09"

这段代码:

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

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

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

我很困惑如何想出一个表示每两个字符先行的表达式。我错过了一些界限还是什么?

4

1 回答 1

5

您可以使用以下内容:

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

(和将)创建捕获,并$1访问捕获。

于 2011-03-04T01:07:33.167 回答