java基础--13.Regex正则表达式

正则表达式的匹配规则


A:字符

        x   字符x   举例:'a'表示字符a
        \\  反斜线字符
        \n  换行符('\u000A')
        \r  回车符('\u000D')


B:字符类

        [abc]       a、b或c(简单类)
        [^abc]      任何字符,除了a、b或c(否定)
        [a-zA-Z]    a-z或A-Z 两头的字母包括在内(指定范围)
        [0-9]       09的字符都包括


C:预定义字符类

        .   任何字符。我的就是.字符本身,怎么表示呢?--"\."
        \d  任意数字字符:[0-9]
        \w  单词字符:[a-zA-Z_0-9] 包含字母(大小写)、下划线"_"、数字


D:边界匹配器

        ^   行的开头
        $   行的结尾
        \b  单词边界
            就是不是单词字符的地方
            举例:hello world?haha;xixi
                其中:空格" "、问号"?"、分号";" 都属于单词边界


E:数量词

        X?  X,0-1次
        X*  X,0-多次
        X+  X,1-多次
        X{n}    X,恰好n次
        X{n,}   X,至少n次
        X{n,m}  X,至少n次,但是不超过m次

匹配获取功能–Pattern和Matcher类的应用


练习:
获取下面这个字符串中由3个字符组成的单词,并打印

package cn.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexDemo2 {

    /**
     * 匹配获取功能
     * 获取下面这个字符串中由3个字符组成的单词
     * da jia ting wo shuo,jin tian yao xia yu,bu shang wan zi xi,gao xing bu?
     * @param args
     */
    public static void main(String[] args) {
        //定义字符串
        String s = "da jia ting wo shuo,jin tian yao xia yu,bu shang wan zi xi,gao xing bu?";
        //定义匹配规则:由3个字符组成的单词
        String regex = "\\b\\w{3}\\b";

        //把规则编译成模式对象
        Pattern p = Pattern.compile(regex);

        //通过模式对象得到匹配器对象
        Matcher m = p.matcher(s);

        //查找下一个匹配的字符串,进入循环则表示查找到
        while(m.find()){
            System.out.println(m.group());//获取并打印该匹配的字符串
        }
    }

}
posted @ 2016-08-17 11:37  时光.漫步  阅读(191)  评论(0编辑  收藏  举报