我需要使用RegEx在HTML页面中查找特定词吗?

时间:2019-02-05 08:45:24

标签: regex regex-group regex-greedy

我正在尝试提取一个永久性表达后的特定单词(可能会更改)。我想在以下代码中提取名称Taldor

<h4 class="t-16 t-black t-normal">
    <span class="visually-hidden">Company Name</span>
    <span class="pv-entity__secondary-title">Taldor</span>
</h4>

目前,我可以使用此正则表达式找到<h4 class="t-16 t-black t-normal">

(?<=<h4 class="t-16 t-black t-normal">).*

将为任何建议感到高兴。

1 个答案:

答案 0 :(得分:0)

我建议您使用HTML解析库(例如Java中的Jsoup或Python中的beautifulsoup)来解析HTML,而不是将正则表达式用于this reason

以下是为您完成工作的那种代码,

String s = "<h4 class=\"t-16 t-black t-normal\">\r\n" + 
        "    <span class=\"visually-hidden\">Company Name</span>\r\n" + 
        "    <span class=\"pv-entity__secondary-title\">Taldor</span>\r\n" + 
        "  </h4>";
Document doc = Jsoup.parse(s);
for (Element element : doc.getElementsByClass("pv-entity__secondary-title")) {
    System.out.println(element.text());
    break;
}

打印

Taldor

在最坏的情况下,如果您正在做一些快速而肮脏的工作,则可以使用正则表达式来执行此临时解决方案,但是肯定不建议这样做。

<span class="pv-entity__secondary-title">(.*?)<\/span>

使用此正则表达式并捕获来自group1的数据。

Demo