【问题标题】:replace in regex baed on repetition index根据重复索引替换正则表达式
【发布时间】:2017-10-31 12:30:06
【问题描述】:

我的字符串多次包含一个特定的子字符串。我想在JAVA中用st1替换奇数重复索引,用st2替换偶数重复索引。例如,假设我的原始字符串是:

ihuiHIdasodkiokedwiHIkopkoijiojiojHIiojiodjadjaiojijHIjoiji

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

ihuiTdasodkiokedwiYkopkoijiojiojTiojiodjadjaiojijYjoiji

我该怎么做?

【问题讨论】:

  • 使用 PatternMatcher 组合与 StringBuffer 替换术语,以及偶数与奇数事件的标志。
  • @Mena,我是 JAVA 新手;您能用示例代码发布答案吗?
  • 到目前为止你尝试了什么?发布您的代码!当你运行它时发生了什么?你期望会发生什么?你具体有什么问题? stackoverflow.com/help/mcve

标签: java regex replace


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-06-07
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多