java正则表达式

正确理解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"));

执行结果:
[table]
|java is J20 s J20|
[/table]
(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());
}

执行结果:
[table]
|javabean|
|javaaean|
[/table]
(3)校验字符串是否满足正则表达式

Pattern pattern = Pattern.compile("[\\w\\s]*");
Matcher matcher = pattern.matcher("java is javabean s javaaean");
System.out.println(matcher.matches());

执行结果:
[table]
|true|
[/table]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值