首页 > 其他 > 详细

匹配文本中的网址java正则表达式

时间:2014-01-21 00:30:10      阅读:297      评论:0      收藏:0      [点我收藏+]

司有个业务需要匹配文本中的网址,度娘,谷哥了半天经常看到有对html中获取超链接的正则,只要匹配<a href=[‘"]?(.*?)[‘"]?即可,但如果是普通文本类型的则比较费事些,分享下最后的表达式:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class URLMatcher {
	public static void main(String[] args) {
		Pattern pattern = Pattern
				.compile("(http://|ftp://|https://|www){0,1}[^\u4e00-\u9fa5\\s]*?\\.(com|net|cn|me|tw|fr)[^\u4e00-\u9fa5\\s]*");
		// 空格结束
		Matcher matcher = pattern
				.matcher("随碟附送下载地址http://www.xxx.com/sdfsdf.htm?aaaa=%ee%sss ?sdfsyyy空格结束");
		while (matcher.find()) {
			System.out.println(matcher.group(0));
		}

		// 中文结束
		matcher = pattern
				.matcher("随碟附送下载地址http://www.xxx.com/sdfsdf.htm?aaaa=%ee%sss网址结束");
		while (matcher.find()) {
			System.out.println(matcher.group(0));
		}

		// 没有http://开头
		matcher = pattern
				.matcher("随碟附送下载地址www.xxx.com/sdfsdf.htm?aaaa=%ee%sss网址结束");
		while (matcher.find()) {
			System.out.println(matcher.group(0));
		}

		// net域名
		matcher = pattern
				.matcher("随碟附送下载地址www.xxx.net/sdfsdf.htm?aaaa=%ee%sss网址结束");
		while (matcher.find()) {
			System.out.println(matcher.group(0));
		}

		// xxx域名
		matcher = pattern
				.matcher("随碟附送下载地址www.xxx.xxx/sdfsdf.htm?aaaa=%ee%sss网址结束");
		while (matcher.find()) {
			System.out.println(matcher.group(0));
		}

		// yyyy域名匹配不到
		System.out.println("匹配不到yyyy域名");
		matcher = pattern
				.matcher("随碟附送下载地址www.xxx.yyyy/sdfsdf.html?aaaa=%ee%sss网址结束");
		while (matcher.find()) {
			System.out.println(matcher.group(0));
		}

		// 没有http://www.
		matcher = pattern
				.matcher("随碟附送下载地址xxx.com/sdfsdf.html?aaaa=%ee%sss网址结束");
		while (matcher.find()) {
			System.out.println(matcher.group(0));
		}

	}
}

结果是死的,但思路是活的,大家可以根据自己的业务随意改写表达式。

有图有真相:

bubuko.com,布布扣


相关代码下载:http://www.zuidaima.com/share/1575653789993984.htm

转载请注明出处。

匹配文本中的网址java正则表达式

原文:http://blog.csdn.net/yaerfeng/article/details/18402569

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!