正则表达式--文本处理神器

该博客介绍了Java中正则表达式的使用,通过Pattern和Matcher类查找字符串中的单词、数字和特定模式。文章详细展示了如何匹配数字、单词、小括号以及使用元字符、限定符、定位符等正则表达式功能。同时,讲解了如何实现不区分大小写的匹配,并给出了验证网址的正则表达式示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正则表达式可视化工具

引入Pattern,Match,Group

找到所有单词

   public static void main(String[] args) {
       String content = "1995年,互联网的蓬勃发展给了Oak机会。业界为了使死板、单调的静态网页能够“灵活”起来,急需一种软件技术来开发一种程序,这种程序可以通过网络传播并且能够跨平台运行。于是,世界各大IT企业为此纷纷投入了大量的人力、物力和财力。这个时候,Sun公司想起了那个被搁置起来很久的Oak,并且重新审视了那个用软件编写的试验平台,由于它是按照嵌入式系统硬件平台体系结构进行编写的,所以非常小,特别适用于网络上的传输系统,而Oak也是一种精简的语言,程序非常小,适合在网络上传输。Sun公司首先推出了可以嵌入网页并且可以随同网页在网络上传输的Applet(Applet是一种将小程序嵌入到网页中进行执行的技术),并将Oak更名为Java。5月23日,Sun公司在Sun world会议上正式发布Java和HotJava浏览器。IBM、Apple、DEC、Adobe、HP、Oracle、Netscape和微软等各大公司都纷纷停止了自己的相关开发项目,竞相购买了Java使用许可证,并为自己的产品开发了相应的Java平台。" ;

       // 创建Pattern,放正则表达式的       Pattern pattern = Pattern.compile("[0-9]+"); :找到所有数字 
       //     匹配简易ip  Pattern pattern = Pattern.compile("\\d+\\.\\d+\\.\\d+\\.\\d");
        Pattern pattern = Pattern.compile("[a-zA-Z]+");
       // 匹配对象
        Matcher matcher = pattern.matcher(content);

        //获取结果 matcher:匹配器匹配结果  matcher.find():还有结果就返回true
        while (matcher.find()){
            //输出匹配结果  匹配内容在 m.group(0)
            System.out.println("find:"+matcher.group(0));
        }

    }

res:

find:Oak
find:IT
find:Sun
find:Oak
find:Oak
....

整体匹配简写

在这里插入图片描述

group解析

在这里插入图片描述

\ 转义符

在这里插入图片描述

在java 中 \ 才表示 转义符 \! = ! \( = (
例如

     // 创建Pattern 匹配小括号
        Pattern pattern = Pattern.compile("\\(");
       // 匹配对象
        Matcher matcher = pattern.matcher(content);

        //获取结果  matcher.find():还有结果就返回true
        while (matcher.find()){
            //输出匹配结果  匹配内容在 m.group(0)
            System.out.println("find:"+matcher.group(0));
        }

元字符

在这里插入图片描述
在这里插入图片描述

汉字的检索[\u0391-\uffe5]

java正则表达式默认是区分字母大小写的,如何实现不区分大小写

(?i)abc:表示abc都不区分大小写
a(?i)bc:表示bc不区分大小写
a((?i)b)c:表示只有b不区分大小写
Pattern pat = Pattren.compile(regEX,Pattern.CASE_INSENSITIVE);

元字符-选择匹配符

在匹配某个字符串的时候是选择性的,即:既可以匹配这个,又可以匹配那个,这时你需要用到哦 选择匹配符 |
符号 符号 示例 解释

| : 匹配“|”之前或之后的表达式 ab|cd 匹配ab或者cd

限定匹配符

在这里插入图片描述

{3,7} : 会按照尽量匹配多的 ,例如 a{3,7} 匹配 aaaaaaa res:aaaaaaa 而不是 aaa

非贪婪匹配

在这里插入图片描述

定位符

元字符-定位符
定位符,规定要匹配的字符串出现的位置,比如在字符串的开始还是在结束的位置,这个也是相当有用的,必须掌握

在这里插入图片描述

非捕获分组

在这里插入图片描述

// (?:)
   public static void main(String[] args) {
        String content =  "hellocunk01hellocunk02sd cunk03" ;
        // 创建Pattern
        Pattern pattern = Pattern.compile("cunk(?:01|02|03)" );
       // 匹配对象
        Matcher matcher = pattern.matcher(content);

        //获取结果  matcher.find():还有结果就返回true
        while (matcher.find()){
            //输出匹配结果  匹配内容在 m.group(0)
            System.out.println("find:"+matcher.group(0));
        }

    }

在这里插入图片描述
在这里插入图片描述

其他

1.验证网址 ((http|https)://)([\w-]+\.)+[\w-]+$
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值