在C Sharp中使用regex替换功能

时间:2013-04-08 12:33:09

标签: c# regex

请问一些有关问题的帮助。

实际上我得到了一个名为" base"的base64字符串。那样:

data:image/pjpeg;base64,iVBORw0KGgoAAAANSUhE...

我需要更换部件"数据:image / pjpeg; base64," by""。

我这样试试:

imageSrc = image.Replace("data:image/(png|jpg|gif|jpeg|pjpeg|x-png);base64,", "");

但它没有用。

有人对此有所了解。

非常感谢

5 个答案:

答案 0 :(得分:5)

您应该在Regex类上使用静态Replace方法。

imageSrc  = Regex.Replace(image, "data:image/(png|jpg|gif|jpeg|pjpeg|x-png);base64,", "");

答案 1 :(得分:1)

您只是使用String.Replace,但您应该使用Regex.Replace作为正则表达式。


但为什么不使用Substring

imageSrc = image.Substring(image.IndexOf(',') + 1)

由于您知道您的字符串始终以data:image/...开头,因此您根本不需要正则表达式。

保持简单,只需在第一个,之后获取子字符串。

答案 2 :(得分:1)

嗯,对于初学者,您的代码正在执行String.Replace而不是Regex.Replace

imageSrc = Regex.Replace(image, "data:image/(png|jpg|gif|jpeg|pjpeg|x-png);base64,", "");

但是Regex对于这个用例来说相当沉重,为什么不把逗号后的所有内容都拿走呢?

imageSrc = image.SubString(image.IndexOf(",") + 1);

答案 3 :(得分:0)

String.Replace()没有regexp的重载。改用Regex.Replace()。

答案 4 :(得分:-1)

正则表达式中存在错误,您必须为替代图像指定?:并使用Regex对象,因此:

Regex.Replace("data:image/(?:png|jpg|gif|jpeg|pjpeg|x-png);base64,", "");

它应该有用