繁体   English   中英

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

[英]Remove non alphanumeric chars but keep decimals in C# string

我需要将其转换为:

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

到这个:

7.5公斤估计总共2,4公斤

注意事项:

  • 删除非字母数字但保留数字
  • 数字可以带点或逗号
  • 数字可以是整数或小数

编辑

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

正则表达式可以。
C#代码与char混在一起也是可以的。

编辑2

我根据基思答案做了一些研究,以更好地理解它:

在此处输入图片说明

您可以执行以下操作:

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?%/=\"º).,¿#@--__"));
}

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM