【发布时间】:2021-02-16 19:50:33
【问题描述】:
我在Javascript 代码中遇到了一个与正则表达式相关的问题。我正在寻找一个可以匹配除br 标签和li(包括ol 和ul)之外的所有HTMl 标签的正则表达式。
到目前为止,我拥有可以检测除 br 标签之外的 HTML 标签的正则表达式。如下
(<((?!br)[^>]+(.*?)?)>)
在<li>、<ol> 和<ul>tags 方面需要帮助。 (包括结束标签)
这是用于检查的示例文本。
<ol>
<li>hi</li>
</ol>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
hello <br /> world <br /> :)
'https://www.youtube.com'
Normal text: should not match!!
'https://www.hotmail.com'
<img src="https://4.img-dpreview.com/files/p/E~TS590x0~articles/3925134721/0266554465.jpeg" />
<img src="/" />
我正在使用https://regexr.com/ 来测试正则表达式。
提前谢谢你!!
【问题讨论】:
-
Regex 不是解决此问题的正确工具。为什么不使用 HTML 解析器?
-
Regex 是 notoriously 不适合这项工作的工具。 (例如,如果有任何父标签包含您要保留的内容,您现有的正则表达式将失败。)。 HTML 是复杂的结构化数据,最好使用专为处理它而设计的 DOM 工具,而不是通过字符串解析器强制它。
标签: javascript html regex