我的输入是:
Foo 12;
Foo 5534;
Foo 1;
我要替换
Foo (\d+?);
至Foo NUM;
结果将是:
Foo NUM;
Foo NUM;
Foo NUM;
我的模式是:
Regex.Replace(line, "Foo (\d+?);", "NUM");
但这似乎行不通。怎么了?
答案 0 :(得分:5)
在您的代码中,您匹配Foo (\d+?);
并将其替换为NUM
,这将是字面结果。但是您要保留的不是数字而是FOO
您可以使用另一种方法进行替换,即使用Foo捕获组并在替换中使用该捕获组。
Regex.Replace(line, @"(Foo) \d+;", "$1 NUM;")
您可以忽略使用问号使\d+
变得非贪婪。
答案 1 :(得分:2)
答案 2 :(得分:0)