const regex = new RegExp('(?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">(.*?)<))', 'gm')
const 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>
`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
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 JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions