欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

正则表达式语法及java中的使用

程序员文章站 2022-03-26 17:17:24
语法规则符号注释\d匹配一个数字\w匹配一个数字或字符或#或汉字[]匹配一个和中括号中内容相同的[^]匹配一个不在中括号中的东西^jds匹配以jds开头的字符串,dfsdjdskk这样的不算jds$匹配以jds结尾的字符串,dfsdjdskk这样的不算+匹配左侧字符一次或者多次*匹配左侧字符零次或多次?匹配前面的字符零次或者一次()将多个字符看成一个字符{n}重复n次{n,}至少重复n次,即能够重...

语法规则

符号 注释
\d 匹配一个数字
\w 匹配一个数字或字符或#或汉字
[] 匹配一个和中括号中内容相同的
[^] 匹配一个不在中括号中的东西
^jds 匹配以jds开头的字符串,dfsdjdskk这样的不算
jds$ 匹配以jds结尾的字符串,dfsdjdskk这样的不算
+ 匹配左侧字符一次或者多次
* 匹配左侧字符零次或多次
匹配前面的字符零次或者一次
() 将多个字符看成一个字符
{n} 重复n次
{n,} 至少重复n次,即能够重复匹配大于等于n次
{n,m} 重复匹配大于等于n,小于等于m次
| 或者

代码演示

^,\d,+,$组合使用

            String reg = "^\\d+$";
            String str = new Scanner(System.in).next();
            Pattern pattern = Pattern.compile(reg);
            Matcher matcher = pattern.matcher(str);
            if (matcher.find()){
                System.out.println("输入格式正确");
            }else {
                System.out.println("输入格式有误");
            }

结果

7456196455
输入格式正确
7dsxsdvs654654
输入格式有误
ds7563965
输入格式有误
464654654k
输入格式有误

该正则表达式的说明

^ \d + $
开头 匹配一个数字 匹配一次或多次 结尾

String reg = “^\\d+$”;等价于String reg = “^\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d$”,其中\d有[1,n]个,n取决于你输入字符串的长度。

意思就是要匹配开头第一个是数字的,中间全是数字的,结尾是数字的,\\d+表示的是对下一个东西进行是不是数字的判断,如果是,继续判断下一个,不是就判断结束,返回false,\d$表示最后一个是数字

7456196455

先匹配到第一个是7,满足==^\\d开头是数字的条件,接着是4,满足\\d+==全是数字的条件。

7dsxsdvs654654

先匹配到第一个是7,满足==^\\d开头是数字的条件,接着是d,满足\\d+==全是数字的条件。


^,\w,(),$组合使用

            String reg = "^\\w+(@163.com)$";
            String str = new Scanner(System.in).next();
            Pattern pattern = Pattern.compile(reg);
            Matcher matcher = pattern.matcher(str);
            if (matcher.find()){
                System.out.println("输入格式正确");
            }else {
                System.out.println("输入格式有误");
            }

结果

41dscd6456sds_@163.com
输入格式正确
#fsdfsd@163.com
输入格式正确
$dfdsfs163.com
输入格式有误
,sfff163.com
输入格式有误
!dfd163.com
输入格式有误
.DSDS163.COM
输入格式有误
/@163.com
输入格式有误

该正则表达式的说明

^ \w + (@163.com) $
开头 匹配一个数字 匹配一次或多次 要有@163.com字符 结尾

String reg = “^\\w+(@163.com)$”;

意思就是要匹配以数字或字母或下画线或#或汉字开头,以@163.com结尾,你可以将()理解成把@163.com包裹成一个字符


^,\d,{n},$组合使用

            String reg = "^1\\d{10}$";
            String str = new Scanner(System.in).next();
            Pattern pattern = Pattern.compile(reg);
            Matcher matcher = pattern.matcher(str);
            if (matcher.find()){
                System.out.println("输入格式正确");
            }else {
                System.out.println("输入格式有误");
            }

结果

12345678955
输入格式正确
21234567894
输入格式有误
g456
输入格式有误
123
输入格式有误

该正则表达式的说明

^ \d {10} $
开头 匹配一个数字 重复十次 结尾

String reg = “^1\\d{10}$”;

意思就是开头是1,然后出现十次数字,确保为后一位是数字

^,|,\d,{n,m},{}组合使用

            String reg = "^(1|2)\\d{3,5}[a-zA-Z]{6,}";
            String str = new Scanner(System.in).next();
            Pattern pattern = Pattern.compile(reg);
            Matcher matcher = pattern.matcher(str);
            if (matcher.find()){
                System.out.println("输入格式正确");
            }else {
                System.out.println("输入格式有误");
            }

结果

1789abcdzd
输入格式正确
178abcdzd
输入格式有误
1789555abcdzd
输入格式有误
1789abcdz
输入格式有误
24646fgbhnmsds
输入格式正确

该正则表达式的说明

^ | \d {3,5} [a-zA-Z] {6,}
开头 或者 匹配一个数字 重复[3,5]次 匹配一个字母 至少要匹配6次

String reg = “^(1|2)\\d{3,5}[a-zA-Z]{6,}”;

意思就是以1或2开头,接着是3到5个数字,接着是6个以上的26个字母,不区分大小写

给自己看的,要是给你带错了,我不负责任啊

本文地址:https://blog.csdn.net/BigBang_JJDS/article/details/109276557

相关标签: 正则表达式