使用替换函数与正则表达式在C夏普
本文关键字:夏普 正则表达式 替换 函数 | 更新日期: 2023-09-27 18:08:15
有个问题需要帮助。
实际上我得到了一个base64字符串名为"image",像这样:
data:image/pjpeg;base64,iVBORw0KGgoAAAANSUhE...
我需要将部分"data:image/pjpeg;base64,"替换为"。
我试着这样做:
imageSrc = image.Replace("data:image/(png|jpg|gif|jpeg|pjpeg|x-png);base64,", "");
但是行不通。
有人有什么想法吗?
Thanks to lot
您应该在Regex类上使用静态Replace方法。
imageSrc = Regex.Replace(image, "data:image/(png|jpg|gif|jpeg|pjpeg|x-png);base64,", "");
首先,你的代码做的是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);
您只是使用String.Replace
,但您应该使用Regex.Replace
正则表达式。
但为什么不直接使用Substring
呢?
imageSrc = image.Substring(image.IndexOf(',') + 1)
因为你知道你的字符串总是以data:image/...
开头,所以你根本不需要正则表达式。
保持简单,只取第一个,
之后的子字符串
String.Replace()没有重载regexp。使用Regex.Replace()代替。
你的正则表达式有一个错误,你必须指定?:为图像选择并使用Regex对象,因此:
Regex.Replace("data:image/(?:png|jpg|gif|jpeg|pjpeg|x-png);base64,", "");
应该可以