java 匹配双引号_(急)如何用java正则表达式捕获超链接,能匹配双引号或单引号....

我现在需要达到一个目标,用java的正则表达式处理一片文章中的所有的和下载相关的超链接地址,要将它们分别获取并单独做处理再替换原链接地址.我的代码在一定情况下实现了这个功能.但是...

我现在需要达到一个目标, 用java的正则表达式处理一片文章中的所有的和下载相关的超链接地址, 要将它们分别获取并单独做处理再替换原链接地址. 我的代码在一定情况下实现了这个功能. 但是问题来了, 有的超链接使用双引号,有的使用单引号 ; 有的加有样式,有的没加样式,加的样式也不经相同.

什么样的表达式能够捕获这样的超链接啊, 尤其是表达式能适用单引号和双引号(引号是成对出现的).

最核心的是我想看看怎么能兼容的匹配单引号和双引号.

下边是我的代码 ,放在 main方法中可以直接跑起来 ,希望有高手能够指点,不胜感激.

String str="附件.pdf"+

"
"+

"表格";

Pattern pt=Pattern.compile("(.*?)",Pattern.CASE_INSENSITIVE );

StringBuffer sb=null;

sb=new StringBuffer();

Matcher m=pt.matcher(str);

while (m.find()){

System.out.println( m.group(0));

System.out.println( m.group(1));

System.out.println( m.group(2));

System.out.println( m.group(3));

m.appendReplacement(sb, "$1"+"将连接地址做处理后进行替换"+"$3");

}

m.appendTail(sb);

System.out.println(sb.toString());

我知道正则表达式学起来比较费事, 在这里讲一下我的代码,就当帮那些学习正则的人们,高手请略过此段.

在循环语句中

m.group(0) 是大捕获组 就是正则找到的一个完整超链接

m.group(1) 是第一个捕获组 就是正则中第一个圆括号匹配的内容.

m.group(2) 是第二个捕获组 就是正则中第二个圆括号匹配的内容.

....

m.appendReplacement(sb, "$1"+"将连接地址做处理后进行替换"+"$3");

这段代码是用重新拼接的内容替换原来的大捕获组. $1代表第一个捕获组匹配的内容,$3代表第三个捕获组匹配的内容(第二个捕获组别我用其他内容替换掉了).

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值