请问一些有关问题的帮助。
实际上我得到了一个名为" base"的base64字符串。那样:
data:image/pjpeg;base64,iVBORw0KGgoAAAANSUhE...
我需要更换部件"数据:image / pjpeg; base64," by""。
我这样试试:
imageSrc = image.Replace("data:image/(png|jpg|gif|jpeg|pjpeg|x-png);base64,", "");
但它没有用。
有人对此有所了解。
非常感谢
答案 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,", "");
它应该有用