Java中的pattern 和Matcher 类
一 Pattern 类的方法介绍
1. Pattern 类用语
创建一个正则表达式或匹配模式,构造方法私有,不可直接创建
Pattern p = Pattern.compile("\\d+"); Pattern 的创建方法
2. Pattern 有一个
split(CharSequence input)方法,用于分隔字符串,并返回String[],
String [] str =p.split ("我的QQ是:456456我的电话是:0532214我的邮箱是:aaa@aaa.com");
结果是:
str[0]="我的QQ是:" str[1]="我的电话是:" str[2]="我的邮箱是:aaa@aaa.com"
按数字分割
3. Pattern 中matches 字符串的全匹配,静态方法
Pattern.matches("\\d+", "2233"); 返回boolean值
二 Mather 类方法介绍
1. 构造方法私有,不能随意创建
Pattern p = Pattern. compile("\\d+"); 指定正则表达式匹配模版
Matcher m = p.matcher("22bb33"); 要匹配的字符串
boolean result = m.matches(); 匹配结果
上面代码等同于:Pattern.matches("\\d+","223");
2. Matcher.lookingAt() 字符串的前部分匹配成功
Matcher.find() 字符串中有符合的部分
3. 在find,matches,lookingAt操作之后
m.start(); 返回匹配到的部分的起始下标
m.end() 返回匹配到的部分的末尾下标
m.group() 返回匹配到部分的字符串
这三个函数都可以传入参数,返回匹配到的第几组
groupCount 返回匹配的组的个数
三. 正则表达式的语法
1.非打印字符
\cxx必须为A-Z或者a-z之间 表示Control-X之间的控制符\f换页符\n换行符\r回车符\s空白符\S非空白符\t制表符\v垂直制表符
2.元字符
\d一个数字字符\D一个非数字字符\w包含下划线的字母或数字\W除字母或数字之外的任何字符\b单词与单词之间的空格 ,例如er\b 匹配 "never"后的"er", 不能匹配“verb”\B没有单词之间的空格,例如 er\B 匹配verb中的er,不能匹配 neverx|y匹配x或y[xyz]匹配xyz中的任意一个字符[^xyz]匹配除开xyz之外的任意字符^字符串开始位置,在中括号中指非$字符串结束位置*匹配前表达式0或多次, zo* 可以匹配z,zo,zoo+匹配前表达式1或多次?匹配前表达式0或1次{n}匹配前表达式n次{n,}匹配前表达式至少n次{n,m}匹配前表达式至少n次,至多m次