`
ts1993
  • 浏览: 13820 次
  • 性别: Icon_minigender_2
  • 来自: 南京
社区版块
存档分类
最新评论

最近要写一个把用户输入的网址改为超链接的需求,最后用正则解决,匹配 可能的网址

阅读更多
果然还是要好好学学java的正则表达式,
本例子使用java se 1.4新增的正则表达式 匹配 循环找出用户输入的字符串中可是是网址的子字符串,并且替换为带 a 标签。

 private void getRealMsg(Stream ps){
                String urlreg = "((http|https)://){0,1}[\\w]+[\\.:][\\w.!@#$%^?=&\\-\\+:*\\d/]+"; 
		pattern = Pattern.compile(urlreg, Pattern.CASE_INSENSITIVE);
		String content = ps.getPushcontent();
		if(content.trim().length() < 4){
			return;
		}
		content = content.replaceAll("<script", "&lt;script");
		content = content.replaceAll("script>", "script&gt;");
		Matcher mac = pattern.matcher(content);
		ArrayList<String> list = new ArrayList<String>();
		ArrayList<String> rlist = new ArrayList<String>();
		String src = null;
		try {
			while(mac.find()){
				src = mac.group();
				list.add(src);
			}
		} catch (Exception e) {
			Logs.getLog(StreamDao.class).error(e);
			return;
		}
		if(list.size() < 1){
			return;
		}
		for(String s : list){
			rlist.add(content.substring(0, content.indexOf(s) + s.length()));
			content = content.substring(content.indexOf(s) + s.length(), content.length());
		}
		int i = 0;
		for(String s : list){
			if(s.startsWith("http")){
				rlist.set(i, rlist.get(i).replace(s, "<a href=\"" + s + "\" target=\"_blank\">" + s + "</a>"));
			}else{
				rlist.set(i, rlist.get(i).replace(s, "<a href=\"http://" + s + "\" target=\"_blank\">" + s + "</a>"));
			}
			i++;
		}
		StringBuilder sb = new StringBuilder();
		for(String s : rlist){
			sb.append(s);
		}
		ps.setPushcontent(sb.toString());
	}


写正则的必备网址啊,可以在线编辑正则,Flash实现~~~

  http://gskinner.com/RegExr/
分享到:
评论

相关推荐

    正则教程 regex regular expression

    正则表达式不仅仅是一个简单的查找工具,它还能够进行复杂的字符串匹配和替换操作,极大地简化了程序员处理文本的工作。 #### 二、正则表达式的基本元素 正则表达式由普通字符(例如字母、数字和标点符号)和特殊...

    正则表达式 调试工具

    查找功能允许用户输入待匹配的文本和正则表达式,然后展示哪些部分被成功匹配。这对于在大量文本中寻找特定模式非常有用,比如在日志文件中查找特定错误信息,或者在代码中查找特定格式的变量或函数。 替换功能则是...

    正则表达式学习资料

    3. **文本替换**:按照指定的规则修改文本内容,例如将所有的URL替换为超链接形式。 4. **数据提取**:从大量文本中抽取所需的信息,例如从日志文件中提取错误代码。 #### 二、正则表达式的构成 正则表达式由一...

    php获取关键字去超链接

    - **正则匹配**:使用正则表达式`"/(.*)A\[(.*)\]\](.*)&gt;&lt;\/kw&gt;/"`匹配关键字及其权重信息,并通过`PREG_SET_ORDER`选项按顺序存储结果到`$out`数组中。 - **关键字拼接**:通过循环遍历`$out`数组中的每个元素,...

    正则表达式不区分大小写以及解决思路的探索 .

    下面是一个使用.NET正则表达式库进行不区分大小写匹配的示例: ```csharp Regex regex = new Regex(pattern, RegexOptions.IgnoreCase); ``` 在上面的C#代码中,`pattern`是正则表达式模式,而`RegexOptions....

    用PHP将网址字符串转换成超链接(网址或email)

    本文所提及的函数名为`makeClickableLinks`,它接收一个文本字符串作为参数,然后使用正则表达式查找其中的网址或电子邮件地址,并将它们转换为相应的HTML超链接标签。具体实现原理如下: 1. 对于网址的匹配和转换...

    一个网络爬虫程序 网页抓取工具

    总之,网络爬虫是IT领域中的一种重要技术,PClawer作为一款高级的爬虫工具,结合了正则表达式的强大功能,为用户提供了高效、灵活的网页抓取解决方案。通过学习和使用PClawer,开发者和数据分析师可以获取到大量网络...

    java Regular Expression / regexp / zhengzebiaodashi

    正则表达式(Regular Expression,简称regex)是Java编程语言中的一个重要工具,用于处理字符串模式匹配和搜索替换。在Java中,正则表达式通过java.util.regex包中的类和接口来实现,例如Pattern和Matcher。本篇文章...

    asp.net乱码解决方法

     1、在web.config里配制,这个方法确实可行,但我想很多人不想用这种方法来解决,把整个项目的请求和回应都定为gb2312,我觉得不是一个好办法,有点本末倒置了,毕竟这会导致很多其它问题的出现。  2、把要包含...

    dreamweaver怎么批量替换超链接?

    如果要指定一个特定的新链接,只需将`#`替换为那个网址即可。完成替换规则的设置后,我们点击“替换全部”按钮,所有匹配到的超链接将会被批量替换为新的链接地址。 需要特别注意的是,使用正则表达式进行批量替换...

    文件查找利器ha_SearchandReplace

    - `[abc]`:匹配字符集内的任意一个字符。 - `[^abc]`:匹配不在字符集内的任意字符。 - `*`:重复前面的字符零次或多次。 - `+`:重复前面的字符一次或多次。 - `{n}`:重复前面的字符n次。 - `{n,}`:重复前面的...

    asp.net正则表达式删除指定的HTML标签的代码

    然后,使用`string.Format`和`Regex.Replace`方法,动态构建了一个正则表达式,这个正则表达式的模式是通过负向前瞻(negative lookahead)来定义的。这种模式通过`(?!exp)`来指定一个位置,该位置后面不跟随`exp`...

    批量替换文件名

    "RenamePro.exe"很可能是一个专门用于批量文件重命名的工具,它能帮助用户快速、高效地完成这项任务。 其次,正则表达式在批量替换中的应用是至关重要的。正则表达式(Regular Expression)是一种模式匹配语言,它...

    php批量删除超链接的实现方法

    因此,要批量删除超链接,我们可以使用正则表达式来匹配并替换掉这些特定的模式。 方法一:使用`preg_replace`函数 `preg_replace`函数可以用来执行一个正则表达式的搜索和替换,是PHP中处理字符串替换的常用函数。...

    基于PHP的自动链PHPutf-8开源版源码.zip

    2. **自动链接功能**:在文本中自动检测URL并转换为超链接的功能,通常通过正则表达式实现。开发者需要了解如何使用PHP的preg_match_all()函数来匹配URL模式,并用preg_replace()函数替换匹配到的文本。 3. **...

    C#实现过滤html标签并保留a标签的方法

    2. 创建一个正则表达式stringPattern,它使用了条件表达式(?(条件)真值表达式|假值表达式)来决定是否匹配字符串。在这里,我们检查是否是“a”标签,如果是,则不进行任何匹配(即忽略);如果不是,则匹配任何...

    提取Word中带底线的英文单词并进行翻译.rar

    4. **正则表达式**:虽然VBA内建的查找功能可能不足以精确地匹配所有底线英文单词,但可以通过引入正则表达式库(如Microsoft VBScript Regular Expressions)来增强匹配能力,确保只选择英文单词而不包括其他文本。...

    BaiduImageSpider-master_百度爬虫_百度图片_

    因此,“BaiduImageSpider-master”提供了一个解决方案,用户只需要修改爬虫代码中的关键词,就可以自动抓取并下载相关图片。 在“BaiduImageSpider-master”项目中,可能包含以下几个主要部分: 1. **请求模块**...

    Discuz 7.0论坛里的UBB编辑器php

    2. **正则表达式**:正则表达式在识别和替换UBB代码时起到关键作用,如匹配特定的UBB标签。 3. **安全防护**:防止XSS跨站脚本攻击,通过过滤和转义用户输入的UBB代码来确保安全性。 4. **缓存机制**:为了提高性能...

    php中使用preg_replace函数匹配图片并加上链接的方法

    在使用`preg_replace()`时,可以定义一个模式(pattern),这个模式描述了你想要匹配的字符串结构,然后将找到的匹配项替换为替换内容(replacement)。通过这种方式,你可以轻松地将页面中的图片链接进行修改或增强...

Global site tag (gtag.js) - Google Analytics