`
zhaoshijie
  • 浏览: 2262699 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

正则表达式匹配聊天中所有url连接地址-高亮显示

 
阅读更多
关键字:正则表达式匹配聊天中所有url连接地址-高亮显示

需要说明:聊天时,发送内容中包含的连接地址进行高亮显示


2、正则表达式:

一个能识别域名url的表达式:
wangshang2.bds=((http[s]{0,1}|ftp|rtsp)://[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)|(www.[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)

一个能识别域名和ip等url的表达式(不带http等前缀的纯ip不能识别):
wangshang3.bds=((http[s]{0,1}|ftp|rtsp)://[a-zA-Z0-9\\.\\-]+\\.([a-zA-z0-9]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)|(www.[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)

一个能识别域名和ip等url的表达式(可识别不带http等前缀的纯ip)
wanghui.bds=((https|http|ftp|rtsp|mms):\\/\\/)[^\\s]+([a-zA-z0-9])|(([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,4})*(/[a-zA-Z0-9\&%_\./-~-]*)?|((http|ftp|https)://[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)|(www.[a-zA-Z0-9\\.\\-]+[\\.|\\/]([a-zA-Z]{1,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)

一个能识别域名和ip等url表达式+域名时后缀限制(该表达式可能存在编码问题,仅供参考,用起来报错  没找到是那个字符的原因)
wangshang.bds =((((ftp:|https:|http:)([\Q/\\E])*)|())(((%[0-9a-fA-F][0-9a-fA-F])|([a-zA-Z0-9])|([\Q$-_.+!*'(),;?&=\E]))+(:((%[0-9a-fA-F][0-9a-fA-F])|([a-zA-Z0-9])|([\Q$-_.+!*'(),;?&=\E]))*)?@)?(((((([a-zA-Z0-9]){1}([a-zA-Z0-9\-])*([a-zA-Z0-9]{1}))|([a-zA-Z0-9]))\.)+(biz|com|edu|gov|info|int|mil|name|net|org|pro|aero|cat|coop|jobs|museum|travel|arpa|root|mobi|post|tel|asia|geo|kid|mail|sco|web|xxx|nato|example|invalid|test|bitnet|csnet|onion|uucp|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw))|([0-9]{1,3}(\.[0-9]{1,3}){3}))(\:([0-9]+))?(([\Q/\\E])+((((%[0-9a-fA-F][0-9a-fA-F])|([a-zA-Z0-9])|([\Q$-_.+\!*'(),;:@&=\E]))*)(([\Q/\\E])*((%[0-9a-fA-F]{2})|([a-zA-Z0-9])|([\Q$-_.+\!*'(),;:@&=\E]))*)*)(\?((%[0-9a-fA-F]{2})|([a-zA-Z0-9])|([\Q$-_.+!*'(),;:@&=<>#"{}[] ^`~|\/\E]))*)*)*)



3、Java代码效果

public class TestDomain {
    public static void main(String[] args) { 
        String strContent="请到以下地址查询:查询地址:充值地址:https://pay.sdo.com/Index.aspx?type=card尊敬的用户: 您好,该卡帐号和密码是正确的,请到以下https://pay.sdo.com/Index.aspx?type=card 地址查询:查询地址:充值地址:https://pay.sdo.com/Index.aspx?type=card "
        +" 192.168.1.888"
        +" 192.168.10.9"
        +" www.zs.com "
        +" ftp://192.168.10.8"
        +" www.aa.bb"
        +" rtsp://192.168.10.8"
        +" http://192.168.1.99"
        +" http://pay.sdo.com/Index.aspx?type=card"
        +" www.ff.com";
        System.out.println(strContent);
        String regex = getS("wangshang3.bds");
        String regex2 = "(http:|https:)//[^[A-Za-z0-9\\._\\?%&+\\-=/#]]*";
        Pattern pattern = Pattern.compile(regex);  
        Matcher matcher = pattern.matcher(strContent);  
        StringBuffer result = new StringBuffer();  
        while (matcher.find()) {  
            String urlStr=matcher.group(); 
            StringBuffer replace = new StringBuffer();  
            replace.append("<a href=\"").append(urlStr);  
            replace.append("\" target=\"_blank\">"+urlStr+"</a>");  
            matcher.appendReplacement(result, replace.toString());  
            System.out.println(urlStr);
        }  
        matcher.appendTail(result);
        System.out.println(result);  
    } 
    private static String getS(String name){
    ResourceBundle resource = ResourceBundle.getBundle("matcher");
    String val = resource.getString(name);
    return val;
    }
}





























分享到:
评论

相关推荐

    正则表达式客户端工具

    1. 常用正则表达式库:工具内置了一套常用正则表达式模式,覆盖了常见的文本匹配需求,如邮箱地址验证、电话号码检查、URL检测等。这使得用户无需从头开始构建复杂的正则表达式,提高了工作效率。 2. 实时编辑与...

    正则表达式验证、测试工具

    - 这些工具可能还具备高亮显示匹配部分、解释匹配规则等功能,有助于理解正则表达式的匹配过程。 4. 使用验证工具的步骤: - 输入正则表达式:在工具的相应区域中输入你的正则表达式。 - 提供测试文本:输入你想...

    《正则表达式中文手册》

    - **示例**:在文本“Jimmy is a junior developer and jimmy lives in xi’an.”中使用`.`作为正则表达式,可以匹配到每一个字符(除了换行符)。 3. **匹配“.”元字符** - **概念**:当需要匹配实际的点号`.`...

    正则表达式测试器及教程

    - **功能**:测试器允许输入正则表达式和测试字符串,实时显示匹配结果,帮助用户调试和验证正则表达式。 - **特性**:通常包括高亮匹配项、替换功能、多语言支持、多种正则引擎选择(如Perl、ECMAScript等)。 -...

    正则表达式测试小工具

    3. 匹配结果展示:工具会高亮显示匹配的部分,或列出所有匹配的子串。 4. 预编译与执行:工具会解析正则表达式,然后在给定的文本上执行匹配操作。 5. 兼容性检查:某些工具会指出所用正则表达式语法在不同编程语言...

    正则表达式利器

    正则表达式(Regular Expression,简称regex)是编程领域中的一种强大的文本处理工具,它能够高效地进行字符串匹配、查找、替换以及提取等操作。在IT行业中,掌握正则表达式是提高工作效率的关键技能之一,尤其对于...

    非常有用的正则表达式测试工具

    正则表达式(Regular Expression,简称Regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。在编程领域,熟练掌握正则表达式能极大提高工作效率。本文将介绍一个名为"RegexTester...

    正则表达式验证器(正则匹配)

    - 输入待验证的正则表达式,例如要验证匹配URL的表达式。 - 在测试区域输入各种可能的URL,观察是否正确匹配。 - 利用验证器的反馈调整正则表达式,直到达到期望的匹配效果。 5. "正则狗"标签可能是指这个工具在...

    正则表达式生成软件(英文)

    7. **预定义模式库**:包含了大量预定义的正则表达式模式,如电子邮件地址、URL、日期时间格式等,用户可以直接应用或作为参考。 在实际使用中,通过RegexBuddy的`.exe`文件,用户可以直接在本地运行软件,无需安装...

    正则表达式测试工具(学习正则表达式的好工具)

    例如,通过反复试验,用户可以学会如何用正则表达式匹配电子邮件地址、URL、日期时间格式,或是从大量文本中提取特定信息等。 总之,正则表达式测试工具是学习和提高正则技能的得力助手,它将抽象的正则表达式与...

    经典JavaScript正则表达式实战

    文本处理方面,正则表达式可以用来高亮显示指定文字,删除标签,替换变量,替换文本中的URL为链接,或者从HTML代码段删除指定标签及其内容。 对HTML源代码的处理,如给源代码中的标签或属性添加双引号,给table添加...

    正则表达式验证工具

    1. **实时匹配**:用户输入正则表达式后,工具会立即展示该表达式对给定文本的匹配情况,通过高亮显示匹配部分,使用户直观地看到结果。 2. **错误提示**:如果正则表达式存在语法错误,工具会给出相应的错误提示,...

    .net正则表达式测试台

    - 高亮显示:匹配成功的部分会被高亮,便于观察匹配情况。 - 替换功能:除了测试匹配,还支持替换操作,方便进行字符串的查找替换。 - 源码查看:附带源码,用户可以学习和自定义工具,进一步理解正则表达式的...

    正则表达式查询表和快捷查询软件

    正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它用于匹配字符串模式,广泛应用于数据验证、搜索和替换等操作。在HTML编写过程中,正则表达式可以帮助我们高效地进行数据提取、标签验证...

    C# 正则表达式测试器

    测试器通常会提供错误提示和匹配的高亮显示,帮助开发者调试和优化正则表达式。 五、应用场景 1. 数据验证:如邮箱地址、电话号码、身份证号等格式的验证。 2. 文本提取:从大量文本中提取特定格式的信息,如日期...

    正则表达式测试工具

    2. **预置正则**:描述中提到工具内置了一些常用正则表达式,这些预设模式覆盖了常见的匹配需求,例如邮箱地址、电话号码、URL、日期时间等,用户可以直接使用或作为参考。 3. **匹配功能**:工具会高亮显示匹配的...

    正则表达式分析工具

    正则表达式(Regular Expression,简称regex)是用于在文本中匹配特定模式的强大工具,广泛应用于数据验证、搜索替换、文本提取等场景。对于初学者来说,正则表达式可能会显得复杂且难以理解,但借助专门的分析工具,...

    正则表达式测试工具_RegexTest

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。在编程语言中,正则表达式是一种强大的工具,可以用来查找、提取、替换或者验证字符串...

    正则表达式测试器

    1. 输入区域:用户可以在这里编写正则表达式,软件会实时显示语法高亮和错误提示。 2. 测试文本区域:用户可以输入或粘贴要匹配的文本,以便观察正则表达式与文本的匹配情况。 3. 匹配结果展示:软件会突出显示匹配...

Global site tag (gtag.js) - Google Analytics