Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从字符串中删除所有非数字字符,并仅将数字作为新字符串获取?_C#_.net_Regex_String_Replace - Fatal编程技术网

C# 如何从字符串中删除所有非数字字符,并仅将数字作为新字符串获取?

C# 如何从字符串中删除所有非数字字符,并仅将数字作为新字符串获取?,c#,.net,regex,string,replace,C#,.net,Regex,String,Replace,我有一个长字符串,其中包含许多字符,如: “8798dsfgsd98gs87%%001912.43.36。” 如何删除所有非数字字符并获取数字,以便获得: “879898870019124336” 在C#中 谢谢 编辑: 如果您的目标是性能,请使用StringBuilder: var text = "8798dsfgsd98gs87£%"%001912.43.36."; var numText = new StringBuilder(); for(int i = 0; i < text.L

我有一个长字符串,其中包含许多字符,如:

“8798dsfgsd98gs87%%001912.43.36。”

如何删除所有非数字字符并获取数字,以便获得:

“879898870019124336”

在C#中

谢谢

编辑: 如果您的目标是性能,请使用
StringBuilder

var text = "8798dsfgsd98gs87£%"%001912.43.36.";
var numText = new StringBuilder();
for(int i = 0; i < text.Length; i++) {
    char c = text[i];
    if ( char.IsDigit(c) ) {
        numText.Append(c);
    }
}
var text=“8798dsfgsd98gs87%,%001912.43.36;”;
var numText=新的StringBuilder();
for(int i=0;i
string str=“8798dsfgsd98gs87%%001912.43.36。”;
字符串结果=string.Empty;
对于(int j=0;j
试试这个方法….

正则表达式答案

string text = "8798dsfgsd98gs87£%\"%001912.43.36.";
string digits = Regex.Replace(text, "[^0-9]", ""); // "879898870019124336"
using System.Text.RegularExpressions;

private string justNumeric(string str)
{
    Regex rex = new Regex(@"[^\d]");
    return rex.Replace(str,"");
}
另一个正则表达式的答案

string str = "8798dsfgsd98gs87£%%001912.43.36.";
string justNumbers = new Regex(@"\D").Replace(str,"");
这比正则表达式快吗?(无论如何,我认为这会对我有所帮助,而且它完全可读!)它将是“标准”快速的。这意味着-有更好的性能解决方案,但LINQ对典型业务应用场景有很好的优化。看看我的“编辑”部分。
using System.Text.RegularExpressions;

private string justNumeric(string str)
{
    Regex rex = new Regex(@"[^\d]");
    return rex.Replace(str,"");
}
string str = "8798dsfgsd98gs87£%%001912.43.36.";
string justNumbers = new Regex(@"\D").Replace(str,"");