Java - 使用RegEx从HTML-String中提取信息

时间:2014-09-01 18:01:05

标签: java html regex youtube extract

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

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

就像我说的每个视频我基本上只需要一行。

示例:

<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"

我基本需要的唯一2个信息是VIDEO-ID和TITLE。 到目前为止,我的RegEx模式看起来像这样:

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

他确切地找到了我需要的线条但是我每次尝试只获得TITLE和VIDEO-ID都没有结果:/

对不起,如果这是一个微不足道的问题,或者不应该在这里提出问题。但到目前为止,这是我的情况。这不是没有作业;)

2 个答案:

答案 0 :(得分:3)

.*?data-video-id="(.*?)".*?data-title="(.*?)"

这应该这样做。提取匹配1并匹配2.

参见演示。

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

答案 1 :(得分:1)

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

ID:"data-video-id=\"([^\"]+)\""

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