我有一串


  工作1工作2工作3工作4工作5


我想获得


  工作1工作21工作321工作4321工作54321


我使用此命令但不起作用

    (?<=work\s(\d)+.)(work)(\s\d+)
    $2$3$1


问题在于它不会记录第一次出现后被替换的信息,而是可以在每次出现后保存更改。

当我应用命令时,我得到


  工作1工作21工作32工作43工作54

最佳答案

您可以在汇总匹配项时尝试Regex.Replace

  String source = "work 1 work 2 work 3 work 4 work 5";
  String aggregate = "";

  // work 1 work 21 work 321 work 4321 work 54321
  String result = Regex.Replace(source, @"\d+", // or  @"(?<=work\s)\d+" pattern
    match => aggregate = match.Value + aggregate);

关于c# - 重叠替换正则表达式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38162738/

10-12 04:37