1
我无法弄清楚如何使用积极的lookahead创建正则表达式。这个想法是将一个长字符串中的每两个字符加上两个字符串。即前置字符串使用replaceAll和正则表达式
"090909" => "XX09XX09XX09"
此代码:
String s = "090909";
String ns = s.replaceAll("(?=\\d\\d)", "XX");
...不工作;输出是XX0XX9XX0XX9XX09
。但是,此代码的工作:
String s = "090909";
String ns = s.replaceAll("(?=09)", "XX");
我在困惑如何来为每两个字符的表情说前瞻。我错过了一些界限或什么?
+1,但是你缺少一个'('在正则表达式中,替换字符串应该是'“XX $ 1”',而不是'“$ 1XX”'。 – 2011-03-04 01:15:01
你的代码没有工作。得到了新的解决方案s.replaceAll(“(?=(\\ d \\ d)+ $)”,“XX”),但不幸的是,这仅适用于字符串长度为偶数 – Zorlac 2011-03-04 01:20:07
的情况。替换所有(“(\\ d \\ d)”,“XX $ 1”)。谢谢!不知道$ 1可以用于替换字符串,但非常感谢 – Zorlac 2011-03-04 01:23:31