使用正则表达式解析HTML表行

海军

我走过这篇文章,为什么不对HTML使用正则表达式作为给我的任务的一部分,我别无选择,只能对HTML使用正则表达式。

我有HTML代码,并分别尝试过

 <td class="a-nowrap">

          <span class="a-letter-space"></span><span>13</span>

        </td>

我已经能够使用以下正则表达式获得13

<td class="a-nowrap">\s*<span class="a-letter-space"></span><span>(\d*)</span>\s*</td>

并且类似地

<td class="a-nowrap">

          <a class="a-link-normal" title="69% of reviews have 5 stars" href="">5 star</a><span class="a-letter-space"></span>          

        </td>

使用正则表达式获得5

<td class="a-nowrap">\s*<a class="a-link-normal" [^>]*>\s*(.*)</a>\s*</td>

但是当两个HTML代码合并在一起时,

<table id="histogramTable" class="a-normal a-align-middle a-spacing-base">

  <tr class="a-histogram-row">



        <td class="a-nowrap">

          <a class="a-link-normal" title="69% of reviews have 5 stars" href="">5 star</a><span class="a-letter-space"></span>          

        </td>

        <td class="a-span10">

          <a class="a-link-normal" title="69% of reviews have 5 stars" href=""><div class="a-meter"><div class="a-meter-bar" style="width: 69.1358024691358%;"></div></div></a>

        </td>

        <td class="a-nowrap">

          <span class="a-letter-space"></span><span>13</span>

        </td>

  </tr>
  <td class="a-nowrap">

      <a class="a-link-normal" title="2% of reviews have 1 stars" href="">1 star</a><span class="a-letter-space"></span>          

    </td>

    <td class="a-span10">

      <a class="a-link-normal" title="2% of reviews have 1 stars" href=""><div class="a-meter"><div class="a-meter-bar" style="width: 2.46913580246914%;"></div></div></a>

    </td>

    <td class="a-nowrap">

      <span class="a-letter-space"></span><span>2</span>

    </td>


</table>

如何使用正则表达式提取5星和13星

塔法里

如果您不想使用HTML解析器,请一个接一个地使用正则表达式,或者.*在两个模式之间添加正则表达式,那么我对您的星形正则表达式做了一些修改,因为它无法正常工作:

首先启用dotall标志,然后使用此标志:

<td class="a-nowrap">\s*<a class="a-link-normal" [^>]*>\s*(\d star).*<td class="a-nowrap">\s*<span class="a-letter-space"></span><span>(\d*)</span>\s*</td>

输出:

第一组:5星

第2组:13

编辑:

我做了更短的正则表达式:

正则表达式:

>(\d star)<.+?>(\d+?)<

pythonregex.com上将其与您提供的已编辑输入一起使用的结果如下:

输出:

>>> regex.findall(string)
[(u'5 star', u'13'), (u'1 star', u'2')]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用正则表达式解析表-Java

来自分类Dev

Python使用正则表达式解析HTML

来自分类Dev

使用正则表达式解析HTML

来自分类Dev

正则表达式,用于解析复杂的HTML表中的值

来自分类Dev

正则表达式,用于解析复杂的数字行

来自分类Dev

Python正则表达式匹配以解析html

来自分类Dev

正则表达式解析JSoup中的html源

来自分类Dev

通过正则表达式进行HTML解析

来自分类Dev

高效的html正则表达式解析

来自分类Dev

使用 HTML 单元格内的 HTML 解析 Python 正则表达式

来自分类Dev

使用正则表达式解析key = value

来自分类Dev

使用正则表达式解析特定日志?

来自分类Dev

使用正则表达式在Python中解析XML

来自分类Dev

使用正则表达式解析VBA Const声明...

来自分类Dev

使用正则表达式解析多选列表

来自分类Dev

使用正则表达式解析多行日志条目

来自分类Dev

使用正则表达式解析WHERE条件

来自分类Dev

使用正则表达式用sed解析括号

来自分类Dev

使用正则表达式解析嵌套的IF语句

来自分类Dev

使用正则表达式解析字符串

来自分类Dev

使用函数解析函数参数的正则表达式

来自分类Dev

无法解析-使用Javascript中的正则表达式

来自分类Dev

使用正则表达式时解析错误

来自分类Dev

使用正则表达式在Python中解析XML

来自分类Dev

使用正则表达式解析数组语法

来自分类Dev

使用正则表达式解析转义字符

来自分类Dev

使用正则表达式解析URL

来自分类Dev

使用正则表达式解析时删除空格

来自分类Dev

使用正则表达式进行日期解析