第4课:匹配HTML

如果你在寻找一种健壮的方式来解析 HTML,那么正则表达式通常不是正确的选择,因为如今互联网上的 HTML 页面结构非常脆弱——常见的错误比如缺少结束标签、标签不匹配、忘记为属性加引号等,都会导致本来写得很好的正则表达式失效。

相比之下,你可以使用像 Beautiful Souphtml5lib(Python 中的库)或 phpQuery(PHP)这样的工具库,它们不仅可以解析 HTML,还可以让你方便地遍历 DOM 结构。

话虽如此,在一些情况下,如果你只是在编辑器中快速匹配标签或标签内容,而且你可以确认输入是干净且受控的,那么使用正则表达式是一个不错的工具。正如你在下面的例子中看到的,有一些情况你需要特别小心,比如属性中有额外转义引号,或标签嵌套等。

请继续为下面的示例编写正则表达式。

练习 4: 捕获HTML标签
Task Text Capture Groups  
捕获 <a>This is a link</a> a To be completed
捕获 <a href='https://regexone.com'>Link</a> a To be completed
捕获 <div class='test_style'>Test</div> div To be completed
捕获 <div>Hello <span>world</span></div> div To be completed
提示

使用合适的库来解析 HTML 是最佳实践,但如果只是查找简单的标签名,你可以使用表达式 <(\w+)。你也可以捕获标签内容,使用 >([\w\s]*)<,或者如果需要的话,还可以捕获属性值,比如 ='([\w://.]*)'

解决上面的问题以继续到, 或者可以参考答案