1

请在某个问题上寻求帮助。

事实上,我得到了一个名为“image”的base64字符串:

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

我需要用“”替换部分“data:image/pjpeg;base64”。

我尝试这种方式:

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

但它不起作用。

有人对此有想法吗?

非常感谢

4

5 回答 5

5

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

imageSrc  = Regex.Replace(image, "data:image/(png|jpg|gif|jpeg|pjpeg|x-png);base64,", "");
于 2013-04-08T12:37:38.810 回答
1

你只是在使用String.Replace,但你应该使用Regex.Replace正则表达式。


但是为什么不直接使用Substring呢?

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

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

保持简单,只取第一个之后的子字符串,

于 2013-04-08T12:36:15.887 回答
1

好吧,对于初学者来说,你的代码正在做String.Replace而不是Regex.Replace.

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

但是对于这个用例来说,正则表达式相当繁重,为什么不把逗号后面的所有内容都取走呢?

imageSrc = image.SubString(image.IndexOf(",") + 1);
于 2013-04-08T12:38:19.267 回答
0

String.Replace() 没有正则表达式的重载。请改用 Regex.Replace()。

于 2013-04-08T12:40:28.277 回答
-1

您的正则表达式中有错误,您必须指定?:用于替代图像并使用正则表达式对象,因此:

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

它应该工作

于 2013-04-08T12:41:39.490 回答