转载请注明出处http://blog.csdn.net/crazy1235/article/details/50532754
基本用法
从JDK1.4开始提供了对正则表达式的支持,位于java.util.regex包里。
主要用到的类就是Pattern和Matcher。
Pattern用于编译你编写的表达式。
public final class Pattern implements java.io.Serializable
Matcher类用于对Pattern编译的表达式进行匹配。
public final class Matcher implements MatchResult
MatchResult接口表示匹配操作的结果。通过MatchResult可以查看匹配边界、组合组边界,但是不能修改。
//返回匹配结果的初始索引
public int start();
//返回捕获子序列的初始索引,group就是分组的编号
public int start(int group);
//返回匹配字符串最后字符的索引
public int end();
//返回捕获子序列的最后字符之后的偏移量
public int end(int group);
//返回匹配捕获的序列串
public String group();
//返回以前匹配期间给定的组序列的串
public String group(int group);
//返回捕获的组数
public int groupCount();
Pattern类常用的方法
public static boolean matches(String regularExpression, CharSequence input)
这是一个静态方法,用于快速匹配字符串。该方法适合用于一个匹配,并且是匹配全部字符串。
public String[] split(CharSequence input)
public String[] split(CharSequence input, int limit)
用于分割字符串。实际上我们通常用的String.split()方法一部分内部实现就是调用Pattern类的split方法。
两个参数的split方法不常用到。下面简单说一下limit参数的用法:(摘自网络)
limit 参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。如果 n 为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。
例如,字符串 "boo:and:foo" 使用这些参数可生成以下结果:
Regex Limit 结果
: 2 { "