删除非字母数字字符,但在C#字符串中保留小数

时间:2017-09-20 00:46:10

标签: c# regex char

我需要转换它:

  

7.5kg(估计)。 2,4公斤(总计?%/ =“º)。,¿#@ - ___

进入这个:

  

7.5kg估计总共2,4公斤

注意事项:

  • 删除非字母数字但保留数字
  • 数字可以有点或逗号表示法
  • 数字可以是整数或小数

修改

我想知道我需要否定这个正则表达式@"\d+[\.\,]?\d*(匹配整数和小数),然后删除结果上的非字母数字。不确定单个正则表达式是否可行。

正则表达式没问题 用字符搞乱的C#代码也可以。

编辑2

我做了一些基于Keith回答的研究,以便更好地理解它:

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作: -

public static string Filter(string s)
{
    var regex = new Regex(@"(\d\.\d|\d,\d|[0-9a-zA-Z]|\s)+");
    var matches = regex.Matches(s);
    var sb = new StringBuilder();
    foreach (var match in matches) sb.Append(match);
    return sb.ToString();
}

static void Main(string[] args)
{
    Console.WriteLine(Filter("7.5kg (estimate). 2,4 kilos (total?%/=\"º).,¿#@--__"));
}

enter image description here