JavaSE基础之正则表达式

符号描述
\转义符
?匹配前面的表达式零次或一次        等价于{0,1}
*匹配前面表达式任意次                等价于{0,}
+匹配前面表达式一次或多次        等价于{1,}
.匹配除了"\r\n"以外的任意单个字符
[^xyz]匹配不包含的任意一个字符
\d匹配一个数字字符                等价于[0-9]        \D:匹配一个非数字
\w匹配包括下划线的任何当个字符        类似[A-Za-z0-9_]
\s

匹配不可见字符,空格、制表符、换页符等,等价于[ \f\n\r\t\v]

1.Pattern类:用于创建一个正则表达式

        String string = "1.2.3";

        // 创建一个正则表达式
        Pattern pattern = Pattern.compile("\\.");

        // 以.分割返回字符串数组
        String[] str = pattern.split(string);

        // 把数组转化为集合
        List<String> strList = Arrays.asList(str);
        System.out.println(strList);

2.Matcher类:用于匹配

        常用方法:

matches()对字符串进行全词匹配,只有整个字符串都匹配成功才会返回true
lookingAt()从前往后匹配,
find()任意位置进行匹配        注:可以与group()一起使用,用于取出数据
        String regex = "\\d{11}";
        String string = "a151334500122";

        // 创建一个正则表达式
        Pattern pattern = Pattern.compile(regex);

        // 匹配器
        Matcher matcher = pattern.matcher(string);

        // matches():全词匹配
        System.out.println(matcher.matches());// false

        /**
         * find与matches不能连用,需要重新创建匹配器
         */
        matcher = pattern.matcher(string);
        // find():任意位置
        System.out.println(matcher.find());// true

        matcher = pattern.matcher(string);
        // lookingAt():从前到后匹配
        System.out.println(matcher.lookingAt());// false:因为第一字符为a,所以直接返回false

        /**
         * find和group一起使用,可以取出数据
         */
        String regexTel = "(我的电话号码是)(\\d{11})";
        String tel = "aaaaa我的电话号码是15133450012";
        pattern = Pattern.compile(regexTel);
        matcher = pattern.matcher(tel);
        if (matcher.find()) {
            // group():参数可以为int型,且保证正则表达式有()划分
            System.out.println(matcher.group());
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值