提取字符串中url的方法
2011-03-31 14:09
176 查看
Pattern patternUrl =Pattern.compile(
new StringBuilder()
.append("((?:(http|https|Http|Https|rtsp|Rtsp):")
.append("//////(?:(?:[a-zA-Z0-9//$//-//_//.//+//!//*//'//(//)")
.append("//,//;//?//&//=]|(?://%[a-fA-F0-9]{2})){1,64}(?://:(?:[a-zA-Z0-9//$//-//_")
.append("//.//+//!//*//'//(//)//,//;//?//&//=]|(?://%[a-fA-F0-9]{2})){1,25})?//@)?)")
// (http://something){1}.com
//.append("//.//+//!//*//'//(//)//,//;//?//&//=]|(?://%[a-fA-F0-9]{2})){1,25})?//@)?)?")
.append("((?:(?:[a-zA-Z0-9][a-zA-Z0-9//-]{0,64}//.)+") // named host
.append("(?:") // plus top level domain
.append("(?:aero|arpa|asia|a[cdefgilmnoqrstuwxz])")
.append("|(?:biz|b[abdefghijmnorstvwyz])")
.append("|(?:cat|com|coop|c[acdfghiklmnoruvxyz])")
.append("|d[ejkmoz]")
.append("|(?:edu|e[cegrstu])")
.append("|f[ijkmor]")
.append("|(?:gov|g[abdefghilmnpqrstuwy])")
.append("|h[kmnrtu]")
.append("|(?:info|int|i[delmnoqrst])")
.append("|(?:jobs|j[emop])")
.append("|k[eghimnrwyz]")
.append("|l[abcikrstuvy]")
.append("|(?:mil|mobi|museum|m[acdeghklmnopqrstuvwxyz])")
.append("|(?:name|net|n[acefgilopruz])")
.append("|(?:org|om)")
.append("|(?:pro|p[aefghklmnrstwy])")
.append("|qa")
.append("|r[eouw]")
.append("|s[abcdeghijklmnortuvyz]")
.append("|(?:tel|travel|t[cdfghjklmnoprtvwz])")
.append("|u[agkmsyz]")
.append("|v[aceginu]")
.append("|w[fs]")
.append("|y[etu]")
.append("|z[amw]))")
.append("|(?:(?:25[0-5]|2[0-4]") // or ip address
.append("[0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9])//.(?:25[0-5]|2[0-4][0-9]")
.append("|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0)//.(?:25[0-5]|2[0-4][0-9]|[0-1]")
.append("[0-9]{2}|[1-9][0-9]|[1-9]|0)//.(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}")
.append("|[1-9][0-9]|[0-9])))")
.append("(?://://d{1,5})?)") // plus option port number
.append("((?:///)*(?:(?:[a-zA-Z0-9//;/////?//://@//&//=//#//~") // plus option query params
.append("//-//.//+//!//*//'//(//)//,//_])|(?://%[a-fA-F0-9]{2}))*)?")
.append("(?://b|$)")
.append("?(?:///)*").toString()
);
String s = "asdfdhttp://www.sina.com/范德萨的 http://www.google.com/这个";
Matcher matcher = patternUrl.matcher(s);
while (matcher != null && matcher.find()) {
System.out.println(matcher.group(0));
}
new StringBuilder()
.append("((?:(http|https|Http|Https|rtsp|Rtsp):")
.append("//////(?:(?:[a-zA-Z0-9//$//-//_//.//+//!//*//'//(//)")
.append("//,//;//?//&//=]|(?://%[a-fA-F0-9]{2})){1,64}(?://:(?:[a-zA-Z0-9//$//-//_")
.append("//.//+//!//*//'//(//)//,//;//?//&//=]|(?://%[a-fA-F0-9]{2})){1,25})?//@)?)")
// (http://something){1}.com
//.append("//.//+//!//*//'//(//)//,//;//?//&//=]|(?://%[a-fA-F0-9]{2})){1,25})?//@)?)?")
.append("((?:(?:[a-zA-Z0-9][a-zA-Z0-9//-]{0,64}//.)+") // named host
.append("(?:") // plus top level domain
.append("(?:aero|arpa|asia|a[cdefgilmnoqrstuwxz])")
.append("|(?:biz|b[abdefghijmnorstvwyz])")
.append("|(?:cat|com|coop|c[acdfghiklmnoruvxyz])")
.append("|d[ejkmoz]")
.append("|(?:edu|e[cegrstu])")
.append("|f[ijkmor]")
.append("|(?:gov|g[abdefghilmnpqrstuwy])")
.append("|h[kmnrtu]")
.append("|(?:info|int|i[delmnoqrst])")
.append("|(?:jobs|j[emop])")
.append("|k[eghimnrwyz]")
.append("|l[abcikrstuvy]")
.append("|(?:mil|mobi|museum|m[acdeghklmnopqrstuvwxyz])")
.append("|(?:name|net|n[acefgilopruz])")
.append("|(?:org|om)")
.append("|(?:pro|p[aefghklmnrstwy])")
.append("|qa")
.append("|r[eouw]")
.append("|s[abcdeghijklmnortuvyz]")
.append("|(?:tel|travel|t[cdfghjklmnoprtvwz])")
.append("|u[agkmsyz]")
.append("|v[aceginu]")
.append("|w[fs]")
.append("|y[etu]")
.append("|z[amw]))")
.append("|(?:(?:25[0-5]|2[0-4]") // or ip address
.append("[0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9])//.(?:25[0-5]|2[0-4][0-9]")
.append("|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0)//.(?:25[0-5]|2[0-4][0-9]|[0-1]")
.append("[0-9]{2}|[1-9][0-9]|[1-9]|0)//.(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}")
.append("|[1-9][0-9]|[0-9])))")
.append("(?://://d{1,5})?)") // plus option port number
.append("((?:///)*(?:(?:[a-zA-Z0-9//;/////?//://@//&//=//#//~") // plus option query params
.append("//-//.//+//!//*//'//(//)//,//_])|(?://%[a-fA-F0-9]{2}))*)?")
.append("(?://b|$)")
.append("?(?:///)*").toString()
);
String s = "asdfdhttp://www.sina.com/范德萨的 http://www.google.com/这个";
Matcher matcher = patternUrl.matcher(s);
while (matcher != null && matcher.find()) {
System.out.println(matcher.group(0));
}
相关文章推荐
- php提取字符串中网站url地址的方法
- Python实现从URL地址提取文件名的方法
- javascript提取URL的搜索字符串中的参数(自定义函数实现)
- url字符串中含中文的转码方法
- 将任意字符串中的汉字提取出来的方法
- 提取URL字符串的搜索字符串中的参数
- abap 中文字符串提取和字节长度计算 (两种方法)
- javascript中存在几种对URL字符串进行编码的方法
- 以HttpGet方法获取URL数据并转换成指定编码格式的字符串
- (收藏备用)两个Javascript方法,取url中的参数字符串
- 【程序】Spads 出品字符串高效提取数值方法 Shane 末日圣诞奉献
- python针对不定分隔符切割提取字符串的方法
- 关于 字符串中的单引号, 在sql存储过程中的传输总结; 逗号分隔的多个变量提取方法.
- 發兩個PL/SQL把字符串提取數字的方法
- 关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
- 提取url的参数的js方法
- Python实现从url中提取域名的几种方法
- php中提取URL中域名的2个方法
- 封装一个提取url参数的小方法