我有一个字符串,像这样:rgb (255, 0, 0)
。我想删除其中的每个字符,除了数字和,
(逗号)字符。
基于此,我有两个问题:
如何用正则表达式做到这一点?(我找到了这个答案,但我不知道如何在其中包含
,
(逗号)符号......)正则表达式是为此目的的最佳方法吗?还是有其他(更好的)方法?
(最好 = 有最好的表现)
正则表达式当然是最简单的:
Regex.Replace(s, "[^\d,]+", "")
将替换不是数字或逗号的所有内容。
使用与您引用的问题相同的方法:
Regex rgx = new Regex("[^\d,]");
str = rgx.Replace(str, string.Empty);
正则表达式是一个非常可行的解决方案。
我会将我的模式设置(?<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