正则表达式解析图像数据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+),(?.*)