我正在尝试从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都没有结果:/
对不起,如果这是一个微不足道的问题,或者不应该在这里提出问题。但到目前为止,这是我的情况。这不是没有作业;)
答案 0 :(得分:3)
.*?data-video-id="(.*?)".*?data-title="(.*?)"
这应该这样做。提取匹配1并匹配2.
参见演示。
答案 1 :(得分:1)
使用以下表达式匹配给定示例中的视频ID和标题。
ID:"data-video-id=\"([^\"]+)\""
标题:"data-title=\"([^\"]+)\""