-4

我有一个字符串,像这样:rgb (255, 0, 0)。我想删除其中的每个字符,除了数字和,(逗号)字符。

基于此,我有两个问题:

  1. 如何用正则表达式做到这一点?(我找到了这个答案,但我不知道如何在其中包含,(逗号)符号......)

  2. 正则表达式是为此目的的最佳方法吗?还是有其他(更好的)方法?

(最好 = 有最好的表现)

4

3 回答 3

8

正则表达式当然是最简单的:

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

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

于 2012-08-29T15:12:26.017 回答
3

使用与您引用的问题相同的方法:

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

str = rgx.Replace(str, string.Empty);
于 2012-08-29T15:13:32.287 回答
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

于 2012-08-29T15:24:21.667 回答