kev*_*evp 10 .net c# regex string
我得到了一些格式不佳的数据,需要从字符串中提取数字.我不确定最好的办法是什么.数字可以是任何长度.
string a = "557222]]>";
string b = "5100870<br>";
Run Code Online (Sandbox Code Playgroud)
知道我能做什么所以我会得到这个:
a = "557222"
b = "5100870"
Run Code Online (Sandbox Code Playgroud)
谢谢
解决方案是c#抱歉.编辑了问题以获得该标记
Ree*_*sey 31
您可以编写一个简单的方法来提取所有非数字字符,但这不会处理浮点数据:
public string ExtractNumber(string original)
{
return new string(original.Where(c => Char.IsDigit(c)).ToArray());
}
Run Code Online (Sandbox Code Playgroud)
这纯粹拉出了"数字" - 您也可以使用Char.IsNumber而不是Char.IsDigit,具体取决于您希望的结果.
对于确切的代码,不熟悉.NET.尽管如此,有两种方法:
21389abc
),则这是最简单的.1231a23v
)并希望保留每个数字,请使用正则表达式[^\d]
替换非数字字符.您可以使用简单的正则表达式:
var numericPart = Regex.Match( a, "\\d+" ).Value;
Run Code Online (Sandbox Code Playgroud)
如果您需要它是实际数值,则可以使用int.Parse
或int.TryParse
.
小智 5
您可以使用LINQ.下面的代码将字符串过滤为只有数字的IEnumerable,然后将其转换为char [].然后,字符串构造函数可以将char []转换为字符串:
string a = "557222]]>";
string b = "5100870<br>";
a = new string(a.Where(x => char.IsDigit(x)).ToArray());
b = new string(b.Where(x => char.IsDigit(x)).ToArray());
Run Code Online (Sandbox Code Playgroud)