如何使用javascript中的正则表达式获取html标记(包括标记)中的内容?

如何使用javascript中的正则表达式获取html标记(包括标记)中的内容?,javascript,html,regex,Javascript,Html,Regex,我有下面的文字- how much production in batu 现在,该文本显示为一系列html标记。基本上,每个单词都被包装在一个span中,带有特定的样式或类。下面是它的样子 '<span style="">how &nbsp;</span><span style="">much &nbsp;</span><span class="pink-highlight">production &n

我有下面的文字-

how  much  production  in  batu
现在,该文本显示为一系列
html
标记。基本上,每个单词都被包装在一个
span
中,带有特定的
样式
。下面是它的样子

'<span style="">how &nbsp;</span><span style="">much &nbsp;</span><span class="pink-highlight">production &nbsp;</span><span style="">in &nbsp;</span><span class="yellow-highlight">batu</span>'

现在,可以使用
regex
轻松地完成这项工作。但是我不太精通
regex
。我能想到的模式

<span>(.*?)</span>
(*)
但它只会找到
span
中的内容,在这种情况下甚至不起作用,因为每个
span
都有一个
style
标记或类


那么,在这种情况下,什么
regex
最适合获得所需的结果呢?

使用regexp可能会因匹配的HTML而失败。将其解析为HTML并获取数据非常容易

var html='batu的产量是多少'
var temp=document.createElement('div')
temp.innerHTML=html
var data=Array.from(temp.querySelectorAll('span'))
.map(span=>
([
span.getAttribute(“样式”)|| span.getAttribute(“类”)||“”,span.textContent.trim()
])
)

log(数据)
我将提供一个简单的正则表达式。实际上,我又增加了两个选项

(<span>(.*?)<\/span>)|(<span style=".*?">(.*?)<\/span>)|(<span class=".*?">(.*?)<\/span>)
(.*?)|(.*?)|(.*?)

只需将其解析为HTML并使用DOM方法即可“现在使用正则表达式就可以轻松完成”——哈哈哈。不,太好了!这就是我需要的。我不知道解析html有困难。这个解决方案不使用正则表达式,而且也很简单。谢谢
(<span>(.*?)<\/span>)|(<span style=".*?">(.*?)<\/span>)|(<span class=".*?">(.*?)<\/span>)