一、场景
匹配已爬取网页中的某一个url链接。
示例:
if (window!=top){top.location.href =window.location.href;}var classid="283";var status="1";var meida = {mp3:"http://mp3.9ku.com/hot/2007/11-01/91161.mp3"};
{
"@context": "https://zhanzhang.baidu.com/contexts/cambrian.jsonld",
"images": ["http://aliyunimg.9ku.com/pic/zjpic/4/32111.jpg?x-oss-process=image/resize,m_fill,w_150,h_150,limit_0/auto-orient,0"],
"description": "《青花瓷》 是 周杰伦 演唱的歌曲,时长04分00秒,由作词,作曲,该歌曲收录在周杰伦2007年的专辑《我很忙》之中,如果您觉得好听的话,就把这首歌分享给您的朋友共同聆听,一起支持歌手周杰伦吧!",
"pubDate": "2007-11-02T00:00:00",
"upDate": "2020-09-03T01:13:18"
}
匹配其中的链接:http://mp3.9ku.com/hot/2007/11-01/91161.mp3
二、解决方法
正则表达式:(?<=mp3:")(.*)(?="})
解释:
?<=:表示找到以mp3:"
开头的字符串
?=:表示找到以"}
结尾的字符串
代码:
Pattern pattern = Pattern.compile("(?<=mp3:\")(.*)(?=\"})");
Matcher matcher = pattern.matcher(data);
while(matcher.find()){
System.out.println(matcher.group(1));
}
注意:
这里需要循环matcher.find()
,直到匹配成功才能打印matcher.group(1)
,否则会报错找不到。