package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`<img\s+
(?=[^>]*\balt="(?<alt>[^>]*?)")? # optional alt attribute
(?=[^>]*\bclass="(?<class>[^>]*?)")? # optional class attribute
(?=[^>]*\bsrc="(?<src>[^>]*?)") # src attribute
[^>]*\/>`)
var str = `<img src="image.png" alt="test" style="zoom:55%;" />
<img class="big" src="image2.png" />
<img alt="test" src="image.png" style="zoom:55%;" />
<img src="image.png" class="small" style="zoom:55%;" alt="test" />
<img src="image.png" alt="test" style="zoom:55%;" />
<img src="image.png"
alt="test"
style="zoom:55%;" />`
var substitution = "![${alt}](${src}){.${class}}"
fmt.Println(re.ReplaceAllString(str, substitution))
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Golang, please visit: https://golang.org/pkg/regexp/