正则表达式在 html (golang) 中查找图像

Kal*_*ina 3 regex xml string escaping go

我正在解析来自几个不同来源的 xml rss 提要,我想在 html 中找到图像。

我做了一些研究,发现了一个我认为可能有用的正则表达式

/<img[^>]+src="?([^"\s]+)"?\s*\/>/g
Run Code Online (Sandbox Code Playgroud)

但我在 go 中使用它时遇到问题。它给了我错误,因为我不知道如何使用该表达式进行搜索。

我尝试将它用作字符串,它不能用单引号或双引号正确转义。我试过就这样使用它,光秃秃的,但它给了我一个错误。

有任何想法吗?

One*_*One 6

使用适当的 html 解析器总是更好地解析 html,但是廉价/hackish 正则表达式也可以正常工作,这是一个例子:

var imgRE = regexp.MustCompile(`<img[^>]+\bsrc=["']([^"']+)["']`)
// if your img's are properly formed with doublequotes then use this, it's more efficient.
// var imgRE = regexp.MustCompile(`<img[^>]+\bsrc="([^"]+)"`)
func findImages(htm string) []string {
    imgs := imgRE.FindAllStringSubmatch(htm, -1)
    out := make([]string, len(imgs))
    for i := range out {
        out[i] = imgs[i][1]
    }
    return out
}
Run Code Online (Sandbox Code Playgroud)

playground