Javascript正则expression式:匹配文本不是HTML标记的一部分

我真的希望有一个在node.js中可执行的正则expression式(所以没有jQuery的DOM处理等,因为标签可以有不同的嵌套),匹配所有不是HTML标签的文本或其中的一部分到单独组。

例如,我希望从该string匹配“5”,“ELT。”,“SPR”,“”,“plo”,“Unterricht”,“”,“nbsp”和“plo”

<tr class='list even'> <td class="list" align="center" style="background-color: #FFFFFF" > <span style="color: #010101">5</span> </td> <td class="list" align="center" style="background-color: #FFFFFF" > <b><span style="color: #010101">ELT.</span></b> </td> <td class="list" align="center" style="background-color: #FFFFFF" > <b><span style="color: #010101">SPR</span></b> </td> <td class="list" style="background-color: #FFFFFF" >&nbsp;</td> <td class="list" align="center" style="background-color: #FFFFFF" > <strike><span style="color: #010101">pio</span></strike> </td> <td class="list" align="center" style="background-color: #FFFFFF" > <span style="color: #010101">Unterricht</span> </td> <td class="list" style="background-color: #FFFFFF" >&nbsp;</td> <td class="list" style="background-color: #FFFFFF" >&nbsp;</td> <td class="list" align="center" style="background-color: #FFFFFF" > <b><span style="color: #010101">pio</span></b> </td> </tr> 

我可以保证标签内没有“>”。

我发现的解决scheme是(?<=^|>)[^><]+?(?=<|$) ,但是在node.js中不起作用(可能是因为向前?它说“无效的组” )

有什么build议么? (是的,我真的认为正则expression式是正确的,因为html可能以其他方式嵌套,并且内容总是具有相同的顺序,因为它是一个表)

试试'yourhtml'.replace(/(<[^>] *>)/ g,'')

  '<tr class =“list even”> <span style =“color:#010101”> </ span> <span style =“color-color:#FFFFFF” / td> <td class =“list”align =“center”style =“background-color:#FFFFFF”> <b> <span style =“color:#010101”> ELT </ span> </ b> </ tt> <td class =“list”align =“center”style =“background-color:#FFFFFF”> <b> <span style =“color:#010101”> SPR </ span> </ b> </ td> <td class =“list”style =“background-color:#FFFFFF”> </ td> <td class =“list”align =“center”style =“background-color:#FFFFFF”> < > <span style =“color:#010101”> pio </ span> </ strike> </ td> <td class =“list”align =“center”style =“background-color:#FFFFFF”> < </ span> </ span> </ span> </ span> </ span> <span style =“color-color: “background-color:#FFFFFF”> </ td> <td class =“list”align =“center”style =“background-color:#FFFFFF”> <b> <span style =“color:#010101”> pio </ span> </ b> </ td> </ tr>'。replace(/(<[^>] *>)/ g,'')

它会给你一个空格分隔的文本,你想匹配(你可以拆分空间)。

也许你可以直接使用标签自己分割:

 html.split(/<.*?>/) 

之后,您必须从结果中删除空string。