Java 正则表达式基础

Java 中有关正则表达式的类都在 java.util.regex 包里
主要有 Pattern Matcher 这两个类

典型的调用顺序是

Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();

使用 Matcher 类,最重要的一个概念必须清楚:组(Group)

在正则表达式中,“()”定义了一个组,由于一个正则表达式可以包含很多的组,所以下面先说说怎么划分组的, 以及这些组和组的下标
下面我们看看一个小例子,来说明这个问题 
\w(\d\d)(\w+)

这个正则表达式有三个组: 
整个\w(\d\d)(\w+)  是第0组 group(0) 
           (\d\d)  是第1组 group(1) 
            (\w+)  是第2组 group(2) 
我们看看和正则表达式匹配的一个字符串

x99SuperJava

group(0)  是匹配整个表达式的字符串的那部分  x99SuperJava 
group(1)  是第1组(\d\d)匹配的部分           99 
group(2)  是第二组(\w+)匹配的那部分         SuperJava

Matcher 类常用方法:

public boolean matches() 
尝试将整个区域与模式匹配。这个要求整个输入字符串都要和正则表达式匹配,和“^$”功能相同
和find不同, find是会在整个输入字符串查找匹配的子字符串。 
public boolean find() 
find会在整个输入中寻找是否有匹配的子字符串

一般我们使用find的流程: 

 while(matcher.find()){
    //在匹配的区域,使用group,replace等进行查看和替换操作
 }
public int groupCount() 
这个方法返回了,正则表达式的匹配的组数
public String group(int group)
这个方法提供了强大而方便的工具,可以得到指定的group所匹配的输入字符串 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值