java正则表达式

编程技术  /  houtizong 发布于 3年前   70
正确理解java正则表达式中Matcher类中matches方法和find方法的区别:
以前一直对matches方法理解为只要有匹配的子串就返回true,而find的含义则一直不怎么清楚,详细百度了一下matches方法,可以说是后知后觉了,呵呵。
1、matches匹配的是整个匹配串,如果整个串满足pattern的正则表达式则返回true,反之返回false。
2、find方法只要有子串满足pattern的正则表达式,则返回true,如果没有任何匹配项则返回false。
下面附上几个matches和find的用法
(1)替换包含正则表达式的子串
Pattern pattern = Pattern.compile("(java[ab]ean)");  Matcher matcher = pattern.matcher("java is javabean s javaaean"); System.out.println(matcher.replaceAll("J20"));

执行结果:
java is J20 s J20

(2)获取满足正则表达式的子串
注:需要获取的子串需要用群组的表达式,即“(子串)”
Pattern pattern = Pattern.compile("(java[ab]ean)");  Matcher matcher = pattern.matcher("java is javabean s javaaean"); while(matcher.find()) {         System.out.println(matcher.group()); }

执行结果:
javabean
javaaean

(3)校验字符串是否满足正则表达式
Pattern pattern = Pattern.compile("[\\w\\s]*");  Matcher matcher = pattern.matcher("java is javabean s javaaean"); System.out.println(matcher.matches());

执行结果:
true

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客