我的输入是:
Foo 12;
Foo 5534;
Foo 1;
我要更换
Foo (\d+?); 到 Foo NUM;
结果是:
Foo NUM;
Foo NUM;
Foo NUM;
我的模式是:
Regex.Replace(line, "Foo (\d+?);", "NUM");
但这似乎行不通。哪里出了问题?
请您参考如下方法:
在您的代码中,您正在匹配 Foo (\d+?); 并将匹配替换为 NUM,这将是文字结果。但是你想要保留在替换中的不是数字而是 FOO
您可以使用 Foo 的捕获组并在替换中使用该捕获组来进行替换。
Regex.Replace(line, @"(Foo) \d+;", "$1 NUM;")
您可以使用问号省略使 \d+ 非贪婪。
