Java 正则表达式基础

来源:互联网 发布:网络pxe rom启动选择 编辑:程序博客网 时间:2024/04/28 03:53

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所匹配的输入字符串 

原创粉丝点击