2017-01-31 88 views
1

为什么这会打印相同的结果?string删除所有字母

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

输出:

ID: stUniqueId01 
ID: stUniqueId01 
+4

因为'String.Replace'不支持正则表达式。使用'var regex = Regex.Replace(tester,“[^ 0-9。]”,“”);' –

+0

@WiktorStribiżewGOSHHHHHHH,谢谢 – user2530266

回答

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); 

,如果你不打算重用的正则表达式。

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 
相关问题