使用正则表达式从一个字符串中获取多个信息

时间:2014-02-19 16:50:01

标签: php regex

我有一个像这样的字符串(编码图像): data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAGQCAYAAAA+89ElAAAABmJLR…AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ApW+4QEIeKApAAAAABJRU5ErkJggg==

我怎样才能得到:

  • 图片类型(png image/png);

  • 哈希(iVBORw0KGgoAA…5ErkJggg==);

我知道如何使用正则表达式,但不是在这个级别......


我找到的唯一解决方案是:

类型

data:image.([^;]+);

哈希

[,]([\S]+);

......但我认为我们可以做得更好吗?

1 个答案:

答案 0 :(得分:0)

不确定字符串格式,这只是一个简单的正则表达式

 # '~data:image[^/]+/(\w+);\w+,([\S]+)~'
 # or
 # "~data:image[^/]+/(\\w+);\\w+,([\\S]+)~"

 data:image [^/]+ /
 ( \w+ )                # (1), type image
 ; \w+ ,                # encoding
 ( [\S]+ )              # (2), image hash