说我的字符串是这样的:
var testexample = <p nameIt="Title">Title_Test</p><figure class="t15"><table><thead><tr>
<th><span>Column1</span></th><th><span>Column2</span></th></tr></thead><tbody><tr><td><span>Entry1</span></td><td><span>Entry2</span></td><td><span>ready</span></td></tr></tbody></table></figure><p ex="ready">!aaa;
这是一个很长的字符串,但是是以字符串形式写出的表。我怎么会在得到之间的话<span>
和</span>
?例如,我希望它返回Column1,Column2,Entry1,Entry2(也许在数组中?)
这是我到目前为止尝试过的:
storing = testexample.match(/<span>(.*)</span>/);
但是它只返回了“ Column1”,我也尝试做matchAll,exec和doing /<span>(.*)</span>/g
。这些结果使我得到了整个字符串,什么也没有,诸如之类的东西<th><span>Column1</span></th>
,或者仅仅是“ Column1”。我对javascript很陌生,因此我在阅读文档时不确定自己在做什么错。任何帮助,将不胜感激。谢谢。
如前所述,您无法使用Regex可靠地解析随机HTML。但是,假设您只想解析问题中所具有的HTML表,那么这就是您的正则表达式:
<span>(.*?)<\/span>
我改变了几件事:
/
in,</span>
因此您的正则表达式实际上早已结束?
在比赛中任何部分中添加了一个。这样,正则表达式将匹配最短的序列,因此您可以匹配所有跨度。match
将匹配此正则表达式的所有匹配项。这也将包括<span>
/</span>
部分<span>
部分这是完整的示例:
var testexample = `<p nameIt="Title">Title_Test</p><figure class="t15"><table><thead><tr>
<th><span>Column1</span></th><th><span>Column2</span></th></tr></thead><tbody><tr><td><span>Entry1</span></td><td><span>Entry2</span></td><td><span>ready</span></td></tr></tbody></table></figure><p ex="ready">!aaa`;
var regex = /<span>(.*?)<\/span>/g;
var match = testexample.match(regex);
var columnContent = match.map(m => m.replace("<span>", "").replace("</span>", ""));
console.log(columnContent[0]); // Column1
console.log(columnContent[1]); // Column2
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句