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次

常见功能:


A:判断功能
  String类的 public boolean matches(String regex)
B:分割功能:
  String类的 public String[] split(String regex)
C:替换功能:
  String类的 public String replaceAll(String regex,String replacement)
D:获取功能:
 Pattern 和 Matcher类
  Pattern p = Pattern.compile(“a*b”);
  Matcher m = p.matcher(“aaaaab”);
 find():查找是否存在
 group:获取刚才查找过的数据

匹配获取功能–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());//获取并打印该匹配的字符串
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值