您的位置:首页 > 编程语言 > Java开发

Java 正则表达式基础

2013-01-05 09:31 375 查看
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所匹配的输入字符串
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: