package jp.biziq.sxf;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* URL工具类
* @author 邵祥飞
*
*/
public class URLUtil {
/**
* 匹配url的正则表达式
*/
private static final String reg = "((https?|ftp)\\:\\/\\/)?([a-zA-Z0-9_\\-]+\\.)*[a-zA-Z0-9_\\-]+\\.[a-zA-Z_]{2,6}((/|\\?)[a-zA-Z0-9_\\.\\?=/#%&\\+-_]+|/|)";
/**
* 解析文本内容中的url
* @param str
* @return
*/
public static String autoLinkURLs(String str) {
StringBuffer str_buf = new StringBuffer();
int index_start = 0;//开始位置
int index_end = 0;//结束位置:默认开始位置
Matcher matcher = Pattern.compile(reg,Pattern.CASE_INSENSITIVE).matcher(str);
while(matcher.find()) {
index_start = matcher.start();
str_buf.append(str.substring(index_end, index_start));//未匹配项
index_end = matcher.end();
str_buf.append("<a href='#'>");//前缀
str_buf.append(str.substring(index_start, index_end));//匹配项
str_buf.append("</a>");//后缀
}
str_buf.append(str.substring(index_end));//未匹配项
return str_buf.toString();
}
public static void main(String[] args) {
//说法是大方http://www.google.com.hk/search?hl=zh-CN&newwindow=1&safe=strict&client=firefox-a&rls=org.mozilla%3Azh-CN%3Aofficial&q=java+%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E8%AF%AD%E6%B3%95&oq=java+%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E8%AF%AD%E6%B3%95&aq=f&aqi=g-g1&aql=1&gs_sm=e&gs_upl=945891l945891l0l946259l1l1l0l0l0l0l140l140l0.1l1l0士大夫
String str = "www.baidu.com是的范德萨msg.biz-iq.jp/directMail/show?id=20是的范德萨www.baidu.com<br/>师德师风sddfsf.sdfsd.sdfsd是打发打发的发生地 ";
// String str = "33ss.33是打发打发的发生地 ";
// String str = "google.com.hk/search?hl=zh-CN&newwindow=1&safe=strict&client=firefox-a&rls=org.mozilla%3Azh-CN%3Aofficial&q=java+%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E8%AF%AD%E6%B3%95&oq=java+%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E8%AF%AD%E6%B3%95&aq=f&aqi=g-g1&aql=1&gs_sm=e&gs_upl=945891l945891l0l946259l1l1l0l0l0l0l140l140l0.1l1l0是的发生的";
// String reg = "(www\\.|http:\\/\\/|https:\\/\\/|http:\\/\\/www\\.|https:\\/\\/www\\.)[a-z0-9]+\\.[a-z]{2,4}";
// String reg = "((https?|ftp)\\:\\/\\/)?([a-z0-9+!*(),;?&=\\$_.-]+(\\:[a-z0-9+!*(),;?&=\\$_.-]+)?@)?(([a-z0-9-.]*)\\.([a-z]{2,6}))|(([0-9]{1,3}\\.){3}[0-9]{1,3})(\\:[0-9]{2,5})?(\\/([a-z0-9+\\$_-]\\.?)+)*\\/?(\\?[a-z+&\\$_.-][a-z0-9;:@&%=+\\/\\$_.-]*)?(#[a-z_.-][a-z0-9+\\$_.-]*)?/i";
// String reg = "http://\\([a-zA-Z0-9_\\-]\\+\\(\\.[a-zA-Z0-9_\\-]\\+\\)\\+\\)\\+:\\?[0-9]\\?\\(/*[a-zA-Z0-9_\\-#]*\\.*\\)*?\\?\\(&*[a-zA-Z0-9;_+/.\\-%]*-*=*[a-zA-Z0-9;_+/.\\-%]*-*\\)*";
// String reg = "((f|ht)tp(s)?)\\://([a-zA-Z0-9_\\-]+\\.)*[a-zA-Z0-9_\\-]+\\.[a-zA-Z_]{2,6}((/|\\?)[a-zA-Z0-9_\\.\\?=/#%&\\+-_]+|/|)";
//可匹配www.google.com
// String reg = "(www\\.|http:\\/\\/|https:\\/\\/|http:\\/\\/www\\.|https:\\/\\/www\\.)([a-zA-Z0-9_\\-]+\\.)*[a-zA-Z0-9_\\-]+\\.[a-zA-Z_]{2,6}((/|\\?)[a-zA-Z0-9_\\.\\?=/#%&\\+-_]+|/|)";
// String reg = "((https?|ftp)\\:\\/\\/)?([a-zA-Z0-9_\\-]+\\.)*[a-zA-Z0-9_\\-]+\\.[a-zA-Z_]{2,6}((/|\\?)[a-zA-Z0-9_\\.\\?=/#%&\\+-_]+|/|)";
System.out.println(URLUtil.autoLinkURLs(str)); //test
}
}
分享到:
相关推荐
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
从A页面通过url传参到B页面时,获取URL中参数出现中文乱码问题,解析url参数的正确方法如下,感兴趣的朋友可以参考下
(2)对网址中的文本进行提取。 (3)建立敏感词库,用文本文件保存。 (4)将该网址所对应的文本中...程序可爬取这些网址中的文本内容,将敏感词记录存入另一个文件,格式自定。 (6)编写一个主界面,整合上述功能。
jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。 jsoup 可以从包括字符串、URL 地址...
HtmlParse,解析给定url中的中文字符,输出到文本文件中: url:可配置多个 输出路径:可配置 package com.lhs; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import ...
本项目按照传统的文本分析方法,并根据微博的特点进行了情感分析。主要在以下方面展开了研究: (1)对微博的降噪清理。从微博短文本的的特点,分析了采用Hash方法的URL并将其过滤,并将跟情感分析无关的用户名等...
jsoup 中文帮助文档 1. 解析和遍历一个html文档输入 2. 解析一个html字符串 3. 解析一个body片断 4. 根据一个url加载Document对象 ...13. 设置元素的文本内容html清理 14. 消除不受信任的html (来防止xss攻击)
jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。本文主要介绍如何使用 jsoup 来进行...
本项目按照传统的文本分析方法,并根据微博的特点进行了情感分析。主要在以下方面展开了研究: (1)对微博的降噪清理。从微博短文本的的特点,分析了采用Hash方法的URL并将其过滤,并将跟情感分析无关的用户名等...
这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对...
Dart中的低级链接(文本,URL,电子邮件)解析库。 必需的Dart> = 2.12(具有null安全支持)。 。 - 安装 通过将此软件包添加到pubspec.yaml : dependencies : linkify : ^4.0.0 用法 import 'package:...
这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对...
react-native-parsed-text, 解析文本并使它的成为多个反应本地文本元素 响应本地解析的文本这个库允许你解析文本并使用 RegExp 或者预定义模式提取部分。 目前有 3种预定义类型: url,phone 和 email 。所有的道具...
本项目按照传统的文本分析方法,并根据微博的特点进行了情感分析。主要在以下方面展开了研究: (1)对微博的降噪清理。从微博短文本的的特点,分析了采用Hash方法的URL并将其过滤,并将跟情感分析无关的用户名等...
这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对...
这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对...
这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对...
Hyper Text Transfer Protocol(超文本传输协议)是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据,经典的HTTP是1.0版本,目前主流的HTTP...
主要介绍了jquery分析文本里url或邮件地址为真实链接的方法,涉及jQuery正则匹配与替换的相关技巧,需要的朋友可以参考下