繁体   English   中英

拆分html,包括使用正则表达式拆分ul标签

[英]Split html including split of ul tag with regex

我正在用\\b(\\w+(?![^<>]*>))\\b用单词分割HTML块

var html = splitParagraph.html();
var splitHtml = html.split(/\b(\w+(?![^<>]*>))\b/);

我正在执行此操作的HTML类似于以下内容:

                <h2>Lorem</h2><br>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor<br>
<br>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor<br>
<br>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor<br>
<br>
[Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor]<br>
<br>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor:<br>
<ul><br>
    <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor</li><br>
    <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor</li><br>
    <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor</li><br>
</ul><br>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor<br>
<br>

您可以在这里看到它的工作: http : //www.regexpal.com/?fam=95537

但是,我要做的是使正则表达式在拆分时也包含ul标签,以便在数组中看起来像["lorem", " ", "ipsum", "<ul><li>lorem</li><li>ipsum</li><li>blah</li></ul>"] (请注意,ul是它自己的项)。 因此,它不会在ul内部拆分任何内容,而只是继续执行ul之后的内容。

我知道我可以使用\\s*<ul[^>]*>[\\S\\s]*?<\\/ul>\\s*来匹配ul ,(感谢ref ),但是我不确定如何结合这两个。

您可以尝试/\\<ul\\>[\\w\\W]+\\<\\/ul\\>|\\b(\\w+(?![^<>]*>))\\b/g ,但我确保有一个较小的解决方案,因为该解决方案仅与您的原始匹配以及<ul></ul>标记之间的所有内容匹配。

我建议不要使用这种结构,因为它很难维护或扩展。 任何用例将如何处理该结果数组? 也许有更好的选择。

编辑:如图所示,您可以只将两个正则表达式与|一起加入|

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM