[英]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.