代码之家  ›  专栏  ›  技术社区  ›  The_Blog

Java-使用RegEx从HTML字符串中提取信息

  •  -1
  • The_Blog  · 技术社区  · 11 年前

    我试图从Youtube播放列表页面的HTML代码中提取信息。 (播放列表名称、视频名称、视频链接)

    我知道使用Regex是不好的做法,但由于这个程序仅供个人使用,我只在播放列表中的每个视频中读一行,所以不需要非常复杂。

    正如我所说,每个视频基本上只需要一行。

    例子:

    <tr class="pl-video yt-uix-tile " data-video-id="VIDEO-ID" data-set-video-id="" data-title="TITLE"><td class="pl-video-handle "></td><td class="pl-video-index"></td><td class="pl-video-thumbnail"><a href="reflink inside palylist" class="ux-thumb-wrap yt-uix-sessionlink contains-addto pl-video-thumb"  data-sessionlink="sessionlink">    <span class="video-thumb  yt-thumb yt-thumb-72"
    

    我基本上只需要两个信息:VIDEO-ID和TITLE。 到目前为止,我的RegEx模式如下:

    Pattern pLine = Pattern.compile("<tr class=\"(?<line>.*)");
    

    他准确地找到了我需要的台词,但我每次尝试只获得标题和视频ID都没有结果:/

    很抱歉,如果这是一个微不足道的问题,或者不应该在这里提出。但这是我目前的情况。不,这不是家庭作业;)

    2 回复  |  直到 11 年前
        1
  •  3
  •   vks    11 年前
    .*?data-video-id="(.*?)".*?data-title="(.*?)"
    

    这样就可以了。提取匹配1和匹配2。

    请参见演示。

    http://regex101.com/r/lK9zP6/4

        2
  •  1
  •   Sam    11 年前

    使用以下表达式匹配给定示例中的视频id和标题fine。

    身份证件: "data-video-id=\"([^\"]+)\""

    标题: "data-title=\"([^\"]+)\""

    推荐文章