正则表达式

JAVA(正则表达式)

元字符

.  :匹配处了换行符之外的任意字符

\w :匹配字符或数字或下划线或汉字

\s:空格

\d:匹配数字

\b:匹配单词的开始和结束

^:匹配字符串的开始

$:匹配字符串的结束

 

匹配8位数字的qq号:^\d\d\d\d\d\d\d\d$

匹配1开头11位数字:^1\d\d\d\d\d\d\d\d\d\d\d$

因为有大量重复的所以引入重复限定符

 

重复限定符

*:重复零次或更多次

+:重复一次或更多次

?:重复零次或更多次

{n}:重复n次

{n,m}:重复n到m次

 

匹配8位数字的qq号:^\d{8}$

匹配1开头11位数字:^1\d{10}$

 

银行卡号14-18:^\d{14,18}$

匹配以a开头,0个多个b结尾的字符串  ^ab*$

 

分组

限定符的作用与它相邻的左边的一个字符起作用

如果想要ab同时被限定怎么办

正则表达式可以用小括号分组,括号内的内容会作为一个整体

^(ab)*$

 

转义

匹配字符串中包含0到多个(ab)开头:^((\ab\))*

 

|  单或

^(130|131 |132|155|156|185)\d{8}$

 

区间

[]  :表示区间

0-9:[0-9]

A-Z:[A-Z]

 

反义

\W:不是数字字母,下划线,中文

\S:不是空格

\D:不是数字

\B:不是单词开头或结束

[^x]:除了x以外的任意字符

[^aeiou]:匹配除了aeiou的任意字符

 

常见的正则表达式

匹配中文的字符:[],匹配的是ASCII码

邮箱:^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)$

国内座机电话号:0431-81234567  010-8123457

^\d{3,4}-\d{8}$

QQ号:^[1-9][0-9]{4-11}$

 

正则表达式的应用

Pattern类

Matcher类

PatternSyntaxException类

String str = "hello, i am jilin";
        //必须包含jilin子串
        String pattern = ".*jilin.";
        boolean matches = Pattern.matches(pattern, str);
        System.out.println(matches);
    @Test
    public  void teat(){
        String re = "cat asa cat aca cat";
        String str = "cat";
        Pattern pattern = Pattern.compile(str);
        Matcher matcher = pattern.matcher(re);

        //统计
        int c = 0;
        while (matcher.find()){
            c++;
        }
        System.out.println(c);
    }

 

posted @   一只神秘的猫  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示