Java正则表达式匹配链接(及注意事项)

一、场景

匹配已爬取网页中的某一个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),否则会报错找不到。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值