我正在尝试使用C#Regex.Replace来自动化将一个结构中的字符串格式化为另一个结构的手动作业。虽然我能够识别并替换一个子字符串,但我无法找到如何匹配和替换字符串其余部分的示例。我想知道是否有一种简单的方法可以做到这一点。
假设我有这个搜索模式,用于标识要转换的字符串:
const string inputPattern1 = "SOC.\\d.\\d.\\d.PO \\d";
是否可以为每个参数设置替换规则?
这是我的意思的视觉例子。请注意,在示例中,字符串具有结构,因此它不是"使用Y"替换 X的任何实例的简单情况。
这是我到目前为止,使用C#控制台程序来计算方法。
private static void Main()
{
const string input1 = "SOC.6.1.1.PO 8";
const string inputPattern1 = "SOC.";
const string replacement1A = "SSHS-S0";
// output should be: "SS06-S1C1-08"
var output1 = Regex.Replace(input1, inputPattern1, replacement1A);
Console.WriteLine("Input1: {0}",input1);
Console.WriteLine("Output1: {0}", output1);
}
结果是:
Input1: SOC.6.1.1.PO 8
Output1: SSHS-S06.1.1.PO 8
答案 0 :(得分:3)
在替换字符串中使用捕获组编号:
var res = Regex.Replace(
"SOC.6.1.1.PO 8"
, @"SOC\.(\d)\.(\d)\.(\d)\.PO (\d)"
, "SS0$1-S$2C$3-0$4"
);
$1
到$4
表示由括号组匹配的输入字符串的内容。