【问题标题】:I have an Issue with InputstreamReader and html我对 InputstreamReader 和 html 有疑问
【发布时间】:2015-06-05 23:33:18
【问题描述】:

我正在尝试使用 java 从 URL 中抓取表格内容,但抓取工具显然无法正常工作。我在 inputstreamReader 和其他在线示例上使用了 java 文档,但无法弄清楚我的问题是什么。问题是,inputstreamReader 在获取最后一列时跳过了表中每个偶数行的两列。每个奇数行都会产生所需的结果。下面是我的代码和输出。

源表如下所示:

最后,输出如下所示:

在 html 术语中,一行中的每一列都是一个标签,它被读取为行。由于跳过了两列,这是否意味着 inputStreamReader 跳过了两行?我在想这将是一个正则表达式问题,但这不可能是原因,因为其余的输出是正确的。我希望能够正确输出或读取所有行和列以便能够继续。

【问题讨论】:

  • 仔细检查您的正则表达式...确保它们考虑到每个表条目的语法变化(例如合理的空格)。

标签: java html regex inputstreamreader


【解决方案1】:

奇数行和偶数行的价格模式不同。

奇数行:

    <tr>
        <td>16:00:52</td>
        <td>$&nbsp;82.14&nbsp; </td>
        <td>763</td>
    </tr>

偶数行:

    <tr>
        <td>16:00:52 </td>
        <td>$&nbsp;82.14 &nbsp;</td>
        <td>8,116</td>
    </tr>

匹配这两种情况的模式是:

String preicePattern = "<td>\\$&.+;(\\d{1,4}\\.\\d{1,4}) *&";

【讨论】:

  • 嗨 Saka1029,您的示例对我不起作用,但我能够使用以下方法解决问题: String preicePattern = "\\$&.+;(\\d{1 ,4}\\.\\d{1,4}) *&";
猜你喜欢
  • 1970-01-01
  • 2018-08-07
  • 2020-12-30
  • 2017-02-22
  • 2019-05-06
  • 1970-01-01
  • 2020-05-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多