从字符串中删除一些字符

时间:2012-08-29 15:08:09

标签: c# regex string

我有一个字符串,如下所示:rgb (255, 0, 0)。我想删除其中的每个字符,除了数字和,(逗号)字符。

基于此,我有两个问题:

  1. 如何使用Regex做到这一点? (我发现this answer,但我不知道如何在其中加入,(逗号)标志......)

  2. Regex是最适合此目的的方法吗?还是有一些其他(更好)的方法?

  3. (最佳=表现最佳)

3 个答案:

答案 0 :(得分:8)

正则表达式是最简单的:

Regex.Replace(s, "[^\d,]+", "")

将替换不是数字或逗号的所有内容。

答案 1 :(得分:3)

使用与您引用的question相同的方法:

Regex rgx = new Regex("[^\d,]");

str = rgx.Replace(str, string.Empty);

答案 2 :(得分:1)

正则表达式是一种非常可行的解决方案。

我会将我的模式设置为(?<colour>(\d*), ?(\d*), ?(\d*)),在每个颜色数字之前允许可选空格,但不限制每个数字最多3个数字(进一步的调整可以纠正这个)。

然后,您将以组的形式访问该颜色。

Regex pattern = new Regex(@"(?<colour>(\d*), ?(\d*), ?(\d*))");
Match m = pattern.Match(color);
Console.WriteLine(m.Groups["colour"].ToString());

返回:255,0,0