我有一个字符串,如下所示:rgb (255, 0, 0)
。我想删除其中的每个字符,除了数字和,
(逗号)字符。
基于此,我有两个问题:
如何使用Regex做到这一点? (我发现this answer,但我不知道如何在其中加入,
(逗号)标志......)
Regex是最适合此目的的方法吗?还是有一些其他(更好)的方法?
(最佳=表现最佳)
答案 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