我有以下的正则表达式:的Javascript分裂包括分隔符
(</?[a-z][a-z0-9]*[^<>]*>)
我有以下文字:
<DIV><P class='abc'>Hello <B>Mister</B>! How are you >..< doing? </P>
<I>I'm good</I></DIV>
现在,我想分裂每个标签的文本:
<DIV>
<P class='abc'>
Hello
<B>
Mister
</B>
! How are you >..< doing?
</P>
<I>
I'm good
</I>
</DIV>
我怎样才能用Javascript正则表达式呢?
是能够得到它的工作,但不得不重新开始,因为JavaScript不支持lookbehinds。
(基本上劈在html标签,并保持分隔符)
编辑:
我与这个目标是使用HTML存储格式。我想将上面的html提供给一个JavaScript对象。 JavaScript对象将格式与文本分开,并执行操作A来格式化对象,操作B用于常规文本。
我知道这听起来有点含糊,但我不想透露太多关于该项目。
出于好奇,有没有你想用正则表达式解析HTML理由吗?除非你对输入有很大的控制,[你可能有一些问题](http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html)。 – NT3RP
首先,你的HTML是无效的,因此很难分析 - '> .. <'应该被编码为'> ..&lt'。其次,[用正则表达式解析HTML会让灵魂陷入生活的领域](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454# 1732454)。 – shesek