package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?mis)<a
\s+
((?:[^\s<>'"=]+(?:=(?:"[^"]*"|'[^']*'|[^\s'">]+))?\s+)*)
href=(?|"([^"]*\.(?:jpe?g|png))"|'([^']*\.(?:jpe?g|png))'|([^\s'">]*\.(?:jpe?g|png))(?=[>\s]))
((?:\s+[^\s<>'"=]+(?:=(?:"[^"]*"|'[^']*'|[^\s'">]+))?)*)
\s*>
(.*?)
</a>`)
var str = `<p>С этой формы приходят заявки <a href="https://site.com/lack_tech.php">https://site.com/lack_tech.php</a></p>
<p>Или что ты имеешь ввиду?</p>
<div class="attachment_files_message">
<p>Прикреплённые файлы:</p>
<a href="http://site.com/public/uploads/kylticket/2670/Screenshot_1.png" target="_blank">Screenshot_1.png</a>
<a href=http://site.com/public/uploads/kylticket/2670/Screenshot_1.png target="_blank">Screenshot_1.png</a>
<a
target="_blank"
href="http://site.com/public/uploads/kylticket/2670/Screenshot_1.png" >Screenshot_1.png</a>
</div>`
var substitution = "<a $1$3 data-fancybox="gallery" href="$2"><img src="$2" alt="" class="tmp_class"></a>"
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/