package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)(?s:("name" : "(.*?)".*?作者[:]*</span>[:]*.*?>(.*?)<.*?出版社.*?> (.*?)<.*?>出版年.*?([\d]{4}-[\d]).*?定价:</span> (.*?)<.*?ISBN:</span> (.*?)<.*?v:average"> ([\d].[\d]).*?v:votes">([\d]+?)<.*?"rating_per">(.*?)<.*?"rating_per">(.*?)<.*?"rating_per">(.*?)<.*?"rating_per">(.*?)<.*?"rating_per">(.*?)<))`)
var str = `
<script type="application/ld+json">
{
"@context":"http://schema.org",
"@type":"Book",
"workExample": [],
"name" : "索拉里斯星",
<span class="pl"> 作者</span>:
<a class="" href="/search/%E6%96%AF%E5%9D%A6%E5%B0%BC%E6%96%AF%E7%93%A6%E5%A4%AB%C2%B7%E8%8E%B1%E5%A7%86">[波] 斯坦尼斯瓦夫·莱姆</a>
</span><br/>
<span class="pl">出版社:</span> 译林出版社<br/>
<span class="pl">原作名:</span> Solaris<br/>
<span>
<span class="pl"> 译者</span>:
<a class="" href="/search/%E9%9D%96%E6%8C%AF%E5%BF%A0">靖振忠</a>
</span><br/>
<span class="pl">出版年:</span> 2021-8<br/>
<span class="pl">页数:</span> 254<br/>
<span class="pl">定价:</span> 49.00元<br/>
<span class="pl">装帧:</span> 平装<br/>
<span class="pl">丛书:</span> <a href="https://book.douban.com/series/54333">译林幻系列</a><br>
<span class="pl">ISBN:</span> 9787544782173<br/>
</div>
</div>
<div id="interest_sectl" class="">
<div class="rating_wrap clearbox" rel="v:rating">
<div class="rating_logo">豆瓣评分</div>
<div class="rating_self clearfix" typeof="v:Rating">
<strong class="ll rating_num " property="v:average"> 8.7 </strong>
<span property="v:best" content="10.0"></span>
<div class="rating_right ">
<div class="ll bigstar45"></div>
<div class="rating_sum">
<span class="">
<a href="comments" class="rating_people"><span property="v:votes">8085</span>人评价</a>
</span>
</div>
</div>
</div>
<span class="stars5 starstop" title="力荐">
5星
</span>
<div class="power" style="width:64px"></div>
<span class="rating_per">46.0%</span>
<br>
<span class="stars4 starstop" title="推荐">
4星
</span>
<div class="power" style="width:54px"></div>
<span class="rating_per">39.4%</span>
<br>
<span class="stars3 starstop" title="还行">
3星
</span>
<div class="power" style="width:17px"></div>
<span class="rating_per">12.5%</span>
<br>
<span class="stars2 starstop" title="较差">
2星
</span>
<div class="power" style="width:2px"></div>
<span class="rating_per">1.8%</span>
<br>
<span class="stars1 starstop" title="很差">
1星
</span>
<div class="power" style="width:0px"></div>
<span class="rating_per">0.3%</span>
`
for i, match := range re.FindAllString(str, -1) {
fmt.Println(match, "found at index", i)
}
}
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/