在重复指数中取代正则表达式

时间:2017-10-31 12:30:07

标签: java regex replace

我有多次包含特定子字符串的字符串。我希望用st1替换奇数重复索引,甚至用JAVA中的st2替换奇数重复索引。例如,假设我的原始字符串是:

ihuiHIdasodkiokedwiHIkopkoijiojiojHIiojiodjadjaiojijHIjoiji

,搜索子字符串为HI。替换奇数重复的字符串为T,偶数字符串为Y。输出应为:

ihuiTdasodkiokedwiYkopkoijiojiojTiojiodjadjaiojijYjoiji

我该怎么做?

1 个答案:

答案 0 :(得分:3)

您可以成对替换它们,然后单独处理发生奇数次数的情况。

String input = "ihuiHIdasodkiokedwiHIkopkoijiojiojHIiojiodjadjaiojijHIjoiji";
String result = input.replaceAll("HI(.*?)HI", "T$1Y")
                     .replace("HI", "T");