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
}
}
分享到:
相关推荐
自定义组件需要解析JSON中的视频源URL和其他属性,如controls、autoplay等,并结合组件的API实现播放、暂停、全屏等控制。 3. 音频播放:类似视频,音频播放可以通过组件实现。解析JSON中的音频源和相关属性,如loop...
富文本解析是现代Web开发和移动应用中常见的一项技术,特别是在构建交互式用户界面时,如社交网络、论坛和内容编辑器等。本知识点主要关注的是百度富文本解析工具,它是一个针对百度小程序的解决方案,旨在提供类似...
它允许开发者轻松地解析、提取和修改HTML内容,就像在Web浏览器中使用jQuery那样方便。jsoup的主要功能包括: 1. **HTML解析**:jsoup能够解析HTML文档,无论是从一个URL加载还是直接提供HTML字符串。它使用了最新...
标题 "URL 的具体分析" 涉及到的是互联网中用于资源定位的统一资源定位符(Uniform Resource Locator,简称URL)的相关知识。URL是互联网上标准的资源地址,它允许我们通过网络访问各种资源,如网页、图片、视频等。...
总结来说,Go-xurls是Go开发中处理文本数据的有力工具,尤其在涉及到URL提取和分析的场景下,它的效率和灵活性使其成为首选。通过深入理解和应用这个库,开发者可以更高效地处理和解析包含URL的文本,为各种项目提供...
另一方面,将URL转换为TXT则是提取网页的纯文本内容,便于快速阅读或数据分析。 实现这个功能,我们通常会用到网络爬虫技术。Python是一个非常流行的编程语言,它有强大的网络请求库如requests和BeautifulSoup,...
总之,"易语言取网页文本中的指定内容"这个主题涵盖了网络编程和网页解析的基础知识,通过学习和实践这部分内容,可以提升你在网络数据获取方面的能力,为后续的项目开发打下坚实的基础。压缩包中的文件"易语言取...
2. **网络图片的解析**:解析编辑器中的HTML内容,提取所有`<img>`标签,并获取`src`属性的值,这些值就是需要下载的网络图片的URL。 3. **图片下载**:使用编程语言(如JavaScript、Python、PHP等)编写代码,遍历...
Java 实现生成二维码和解析二维码 URL 操作示例 Java 是一种广泛使用的...Java 实现生成二维码和解析二维码 URL 操作示例提供了一个完整的解决方案,涵盖了生成二维码、解析二维码和文件读写操作等多个方面的内容。
在Linux环境下,使用C或C++编程语言实现通过URL访问网页并提取网页文字内容涉及到多个技术领域,包括网络编程、HTTP协议理解、HTML解析等。本文将深入探讨这些知识点,并提供一个简化的实现流程。 首先,我们要理解...
1. **HTML解析**:使用HTML解析库(如Jsoup)解析富文本编辑器生成的HTML,获取文本内容、图片URL、段落、标题等元素。 2. **图片处理**:将HTML中的图片下载到本地,或者上传到服务器并获取访问URL。在Word中,...
这个5KB的压缩包文件可能是一个简单的基础程序,如PARSER.BAS,用于演示如何在BASIC编程环境中解析HTML并获取其中的URL。 要从HTML中提取URL,我们需要理解HTML的结构。链接通常由`<a>`标签表示,其`href`属性存储...
无论是处理URL中的特殊字符,还是确保文件内容的正确读写,都需要对各种编码格式有深入的理解。在日常工作中,使用合适的编程工具和库可以帮助我们高效地处理这些问题,提高代码的健壮性和可维护性。因此,对于IT...
在Java编程中,使用URL来获取文本文件和图像文件是一种常见且高效的方法。这种方法允许程序通过网络或本地文件系统读取资源,为数据处理、显示和分析提供了极大的灵活性。下面将详细介绍如何利用Java的`java.net.URL...
在IT行业中,文本内容批量替换是一项非常实用的技术,尤其对于数据处理、文档整理以及网站维护等领域。这个"文本内容批量替换"工具显然旨在帮助用户高效地处理大量文本数据,实现快速、一致的替换操作,避免手动操作...
总的来说,微信小程序富文本解析自定义组件如`wxParse`提供了一种便捷的方式来处理复杂的文本格式,使开发者能够更灵活地展示内容。理解其工作原理和使用方法,对于提高小程序的用户体验和功能丰富性具有重要意义。...
在本场景中,我们将探讨如何使用AJAX来读取本地的文本文档内容,并将其展示在网页上。这个功能在现代Web应用中非常常见,比如预览文件、编辑器中的实时保存等。 首先,我们需要理解AJAX的基本工作原理。它通过...
在互联网应用开发中,经常需要从一段文本或数据中提取出URL中的域名部分。这种需求常见于链接管理、网络安全检查、网站数据分析等多个领域。本文将详细介绍如何通过正则表达式的方式实现从字符串中提取URL域名的功能...
网页中的文本信息提取是一项常见的IT任务,特别是在数据挖掘、网络爬虫和信息处理等领域。这一过程涉及从HTML、XML或其他Web格式的文档中提取有用的数据,以便进一步分析或存储。以下是对这一主题的详细说明: 1. *...
3. **HTML解析**:读取到的网页内容通常是HTML文本,可以使用HtmlAgilityPack库来解析HTML。这是一个强大的HTML解析器,可以处理不规范的HTML。安装库后,可以创建HtmlDocument对象,加载HTML内容,然后查询、修改或...