我正在使用\b(\w+(?![^<>]*>))\b
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
,(感谢the ref),但我不确定如何将这两者结合起来。
答案 0 :(得分:1)
您可以尝试使用/\<ul\>[\w\W]+\<\/ul\>|\b(\w+(?![^<>]*>))\b/g
,但我确定这是一个较小的解决方案,因为这个解决方案只匹配原始版本以及<ul>
和</ul>
代码之间的任何内容。
我建议不要使用这种结构,因为它很难维护或扩展。您对所得数组所做的任何用例?也许有更好的选择。
编辑:如图所示,您可以使用|