在上一篇文章中介绍了正则表达式的匹配字符时所用到的符号所代表的意思。下面我来说一下具体的例子。
先说一下他的写法:在书写正则表达式的时候最好能够分开来写,虽然说写在一起也可以,但是这样有时候会降低效率。
Pattern p = Pattern.compile{"[a-z]{3}"};
Matcher m=p.macther("abc");
boolean x=m.matches();
先将匹配规则初始化,第一行代码的意思是说匹配规则为字符串中有三个字符,这三个字符均为a-z中的字符,如果第二行代码中输入的字符串符合这个规则,那么第三行代码的x值应该为true,反之为false。如果说将这三行代码合并起来写,应该是:"abc".matches("[a-z]{3}");这里的大括号里写的是出现的次数。
例如:X{m}代表正好出现m次,X{m,}代表至少出现m次,至多无限,X{m,n}代表x至少出现m次,至多n次
a.matches("...");匹配a字符串是否为三个字符组成,其中每个点代表一个字符。
正则表达式中的规则不一定全都是符号,也可以是字符,例如"aa".matches("aa"); 的返回值也是true
"aaa".matches("a*"); 其中*代表0个或多个a。 这行代码的意思是说匹配规则为字符串有0个或多个a字符组成。
"aaaa".matches("a?");其中?代表0个或1个a 。这行代码的意思是说匹配规则为字符串有0个或1个a字符组成。
这里有这样一个例子:"192.168.0.aaa".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}")。这个匹配规则为字符串前面为1-3个数字,后面跟一个点,在后面又是1-3个数字,然后又是点,又是1-3个数字,然后一个点,又再是1-3个数字。再这个字符中前面的规则的符合,他最后为aaa三个字符,所以匹配不正确,返回值为false。
再看下面这个例子:"192".matches("[0-2][0-9][0-9]");代表三个数分别为0-2,0-9,0-9。此字符串的返回值为true。
x.matches("^h.*");规则为开头的第一个字符为h,后面跟着一个字符,再后面跟着0个或多个字符
x.matches(".*ir$")表示以ir结尾,前面有多个字符
x.matches("^h[a-z](1,3)o\\b.*")表示以h开头,中间是以a-z出现1-3次后面跟着一个o,再后面为单词边界(单词边界为空格,各种各样特殊字符,换行等等)。
其他的例子我就不在一一列举了,如果大家对正则表达式符合代表什么意思,可以查看上一篇文章正则表达式代表的意义
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有