C# 如何有条件地替换正则表达式中的捕获组
我有一个字符串,以4个可能的代码结尾,我需要用3个可能的代码替换它。 例如 虽然将后缀代码放入捕获组很容易,但我想知道如何进行替换,如果组==“D”,则替换为“C”,否则替换为捕获组 基本子组替换模式:C# 如何有条件地替换正则表达式中的捕获组,c#,regex,regex-group,C#,Regex,Regex Group,我有一个字符串,以4个可能的代码结尾,我需要用3个可能的代码替换它。 例如 虽然将后缀代码放入捕获组很容易,但我想知道如何进行替换,如果组==“D”,则替换为“C”,否则替换为捕获组 基本子组替换模式: (?<word>\w{3})\.(?<sub>[A-Z]+) 我使用的是c#,但由于模式和替换字符串都是从数据库读入并替换的(请参见下文),因此我不能仅在代码中执行此操作: Regex.Replace(mystring, pattern, replaceStr); 如
(?<word>\w{3})\.(?<sub>[A-Z]+)
我使用的是c#,但由于模式和替换字符串都是从数据库读入并替换的(请参见下文),因此我不能仅在代码中执行此操作:
Regex.Replace(mystring, pattern, replaceStr);
如果mystring是abc.A、abc.B等中的一个如果您只需要替换
abc.D
并保持其他代码的完整性,为什么不使用(\w{3}\]D\B
并替换为$1c code
?请解释你在做什么,并添加语言标签。我可以这样做,但由于我的实际案例需要许多正则表达式集,它实际上使我的工作量增加了一倍,因此,我正在寻找一种涵盖所有情况的解决方案。您考虑过使用吗?我需要所有这些都在模式内并替换字符串。您不能这样做。如果您只需要替换abc.D
,并保持其他代码的完整性,为什么不使用(\w{3}\)D\b
并替换为$1c code
?请解释您正在做什么并添加语言标记。我可以这样做,但由于我的实际案例需要许多正则表达式集,因此它实际上使我的工作量增加了一倍,因此我正在寻找一种涵盖所有案例的解决方案。您是否考虑过使用?我需要它全部位于模式内并替换字符串。您不能这样做。
${word} ${sub} code
Regex.Replace(mystring, pattern, replaceStr);