将分组列表元素与正则表达式匹配

时间:2017-06-20 01:19:23

标签: javascript html regex

我确定之前已经问过这个问题,但是我找不到它。

我有一堆像这样的列表元素:

<li class="list-item">aewfaffjpiowfj: apeifjeawpfioj</li>
<li class="list-item">aewfaffjpiowfj: apeifjeawpfioj</li>
<li class="list-item">aewfaffjpiowfj: apeifjeawpfioj</li>
<li class="list-item">aewfaffjpiowfj: apeifjeawpfioj</li>
<br><br>

sample text
<li class="list-item">aewfaffjpiowfj: apeifjeawpfioj</li>
<li class="list-item">aewfaffjpiowfj: apeifjeawpfioj</li>

more text
<li class="list-item">aewfaffjpiowfj: apeifjeawpfioj</li>

我想将每个组包装在<ul></ul>元素中。我该怎么做?

这是我尝试过的,但它只符合各个元素: /<li [^>]*>.*<\/li>/g

https://regex101.com/r/KXEkJz/1

如果我做/<li [^>]*>[\s\S]*<\/li>/g,它会产生一个巨大的匹配。

1 个答案:

答案 0 :(得分:3)

如果您想按新行分组,请尝试以下方法:

(<li [^>]*>.*<\/li>\n?)+

它与你的唯一区别在于它尝试捕获多个<li>个对象,如果有新行则不会介意。如果有新行后跟不同的内容,则会停止匹配。