string删除所有字母

时间:2017-01-31 23:07:05

标签: c# regex string replace

为什么会打印相同的结果?

string tester = "stUniqueId01";
Debug.WriteLine("ID: " + tester);
var regex = tester.Replace("[^0-9.]", "");
Debug.WriteLine("ID: " + regex);

输出:

ID: stUniqueId01
ID: stUniqueId01

2 个答案:

答案 0 :(得分:3)

您正在呼叫string.Replace,而不是Regex.Replace。我想你想要:

string tester = "stUniqueId01";
Debug.WriteLine("ID: " + tester);
var regex = new Regex("[^0-9.]");
Debug.WriteLine("ID: " + regex.Replace(tester,""));

或:

string tester = "stUniqueId01";
Debug.WriteLine("ID: " + tester);
var replaced = Regex.Replace(tester,"[^0-9.]","");
Debug.WriteLine("ID: " + replaced);

如果您不打算重复使用正则表达式。

答案 1 :(得分:0)

您正在使用String中的Replace方法。它需要字符串,而不是正则表达式。尝试:

string tester = "stUniqueId01";
Console.WriteLine("ID: " + tester);
Regex rx = new Regex("[^0-9.]");
var regex = rx.Replace(tester, "");
Console.WriteLine("ID: " + regex);

结果:

ID: stUniqueId01
ID: 01