我确定之前已经问过这个问题,但是我找不到它。
我有一堆像这样的列表元素:
<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
,它会产生一个巨大的匹配。
答案 0 :(得分:3)
如果您想按新行分组,请尝试以下方法:
(<li [^>]*>.*<\/li>\n?)+
它与你的唯一区别在于它尝试捕获多个<li>
个对象,如果有新行则不会介意。如果有新行后跟不同的内容,则会停止匹配。