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());
-
- }
- }
- }
复制代码
|
|