正则表达式解析图像数据URI
如果我有 :
如何将数据部分解析为:
- Mime类型(图像/ gif)
- 编码(base64)
- 图像数据(二进制数据)
编辑 :扩展以显示用法
var regex = new Regex(@"data:(?[\w/\-\.]+);(?\w+),(?.*)", RegexOptions.Compiled); var match = regex.Match(input); var mime = match.Groups["mime"].Value; var encoding = match.Groups["encoding"].Value; var data = match.Groups["data"].Value;
注意 :正则表达式适用于所示的输入。 如果指定了一个charset
,它将无法工作,并且必须重写。
实际上,你不需要正则表达式。 根据维基百科 ,数据URI格式是
data:[][;charset=][;base64],
所以只需执行以下操作:
byte[] imagedata = Convert.FromBase64String(imageSrc.Substring(imageSrc.IndexOf(",") + 1));
这是我的正则表达式,我不得不将mime-type(image / jpg)分开。
^data:(?(?\w+)\/(?\w+));(?\w+),(?.*)