黑马程序员技术交流社区
标题:
正则表达式
[打印本页]
作者:
fmi110
时间:
2015-9-5 09:14
标题:
正则表达式
a
/*
*正则表达式:
* A:字符
* x 代表字符x。如 a 标识'a'
* \\ 反斜杠字符
* \n 换行符('\u000A')
* \r 回车符('\u000D')
* B:字符类
* [abc] 代表有a 或 b 或 c 有且只有一个字符
* [^abc] a b c都不是
* [a-zA-Z] 所有字母中的一个(有一个闭区间范围内的值)
* [0-9] 0到9之间的一个字符
* C:预定义子父类
* . 任意字符
* \d 数字字符
* \D 非数字字符
* \s 空白字符[\t\n\r\x0B]
* \S 非空白字符[^\s]
* \w 单词字符[a-zA-Z_0-9](下划线也属于单词字符)
* \W 非单词字符
* D:边界匹配器
* ^ 开头
* $ 行为
* \b 单词边界 (不是单词字符的地方)
*
* E:数量词
* X? 至多一次
* X* 零次或者多次
* X+ 至少一次
* X{n} 刚好n次
* X{n,} 至少n次
* X{n,m} n到m次,闭区间
*
* 正则表达式常见例子
* 判断: boolean matches(String regex)
* regex 为正则表达式字符串
* 分割: String[] split(String regex)
* 替换: String replaceAll(String regex,String replacement)
* */
//获取字符串中只有3个字母的单词
package demo;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test2 {
public static void main(String[] args) {
String str = "wo shi huang yun ning,ni hao la,haha hah";
//正则表达式原始
String regex = "\\b\\w{3}\\b";
//将正则表达式编译到模式中
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);//模式的匹配过滤器
// boolean b = m.matches();
// System.out.println(b);
System.out.println(p.pattern());//返回此编译模式的正则表达式
System.out.println(m.find());
System.out.println(m.group());
System.out.println(m.find());
System.out.println(m.group());
boolean b = false;
while(b=m.find()){
System.out.println("匹配的结果"+b);
System.out.println(m.start());//返回前一个find的匹配的初始索引
System.out.println(m.end());//返回最后匹配字符之后的偏移量
System.out.println("偏移量截到的字符串:"+str.subSequence(m.start(), m.end()));
System.out.println("group获取的字符串:"+m.group());
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2