如何从字符串中删除所有字母字符?

Ash*_*shu 44 .net c#

我有一个包含字母字符的字符串,例如:

  1. 254.69米
  2. 26.56厘米
  3. 23.36英寸
  4. 100.85英尺

我想从上面提到的字符串中删除所有字母字符(单位),以便我可以调用double.Parse()方法.

Pra*_*ana 106

这应该工作:

// add directive at the top 
using System.Text.RegularExpressions;

string numberOnly = Regex.Replace(s, "[^0-9.]", "")
Run Code Online (Sandbox Code Playgroud)

  • 可能想保留任何标志:`"[^ 0-9.+ - ]"` (21认同)
  • 对于小数位于'.'之后的国家/地区的本地化,此解决方案效果不佳. (4认同)

fro*_*hli 22

您应该能够使用Regex解决此问题.将以下引用添加到项目中:

using System.Text.RegularExpressions;
Run Code Online (Sandbox Code Playgroud)

之后,您可以使用以下内容:

string value = Regex.Replace(<yourString>, "[A-Za-z ]", "");
double parsedValue = double.Parse(value);
Run Code Online (Sandbox Code Playgroud)

假设您只有字母字符和空格作为单位.


小智 5

使用LINQ:

using System.Linq;

string input ="57.20000 KG ";
string output = new string(input.Where(c=>(Char.IsDigit(c)||c=='.'||c==',')).ToArray());
Run Code Online (Sandbox Code Playgroud)

  • 这只是一件小事:这个解决方案消除了对 System.Text.RegularExpressions 的依赖——这在我正在处理的当前应用程序中并不常用。 (2认同)