java正则取得字符串中所有url

1.今天做一个需求,是把短信和邮件中所有涉及的url提取出来,增加一个参数
url都是http://的请求头,不包含https://
网上查了一下,只能取出来一部分url,无法得到后面的参数,自己写了一个

2.代码如下:
Pattern pattern = Pattern.compile("http://[\\S\\.]+[:\\d]?[/\\S]+\\??[\\S=\\S&?]+[^\u4e00-\u9fa5]");
Matcher matcher = pattern.matcher("http://210.51.166.252:9080/crm/crm?action=getsaleuser&sourcetoken=479744faed62a05c9273f56769f33000&data={u_mobilephone:define}&sourceid=kf_9762_ISME9754_T2D_kangdayang&siteid=kf_9762&userid=kf_9762_ISME9754_T2D_kangdayang w我们这样写会很好");
StringBuffer buffer = new StringBuffer();
while(matcher.find()){
buffer.append(matcher.group());
buffer.append("\r\n");
}
System.out.println(buffer.toString());

截取原则:a)http://开头 b)空白或者非中文结尾

你可能感兴趣的:(正则表达式)