Java基础-正则表达式

正则表达式

  • 正则表达式是用来匹配用户的输入是否符合需求的

1,*,+,?,{n,},{n},{m,n}都是用来匹配次数的

 public static void main(String[] args) {
        String str = "javaaaaa";
        // regular expression
        // * 表示紧跟着的前面的子表达出现0次或者多次
        System.out.println(str.matches("java*"));
        // + 表示紧跟着的前面的子表达至少出现一次
        System.out.println(str.matches("java+"));
        // ? 表示紧跟着的前面的子表达出现0次或者1次
        System.out.println(str.matches("java?"));
        // {n,} 表示紧跟着的前面的子表达至少n次
        System.out.println(str.matches("java{3,}"));
        // {n} 表示紧跟着的前面的子表达出现3次
        System.out.println(str.matches("java{3}"));
        // {m,n} 表示紧跟着的前面的子表达出现m次,但是不能超过n次(可以等于n)
        System.out.println(str.matches("java{3,5}"));
    }

2,\d,.,\s,\w,

public static void main(String[] args) {
        String str = "123456_";
        // \d 与数字字符匹配
        System.out.println(str.matches("\\d{6}"));
        // .除了 \n\r不能匹配,其他都匹配
        System.out.println(str.matches(".{7}"));
        // \s 匹配任何空白字符,包括空格、制表符、换页符等。与 [ \f\n\r\t 空格] 等效。
        System.out.println(str.matches("\\d{6}\\s*"));
        // \w 匹配所有的英文单词(大小写) 数字字符 _
        System.out.println(str.matches("\\w{7}"));
    }

3,[ ]

public static void main(String[] args) {
        String str = "16234234344";
        // 与[] 里面的内容只能匹配一个
        System.out.println(str.matches("a[ace]c."));
        // ^ 把中括号种的字符都排除在外,反过来
        System.out.println(str.matches("a[^ace]c"));
        // ^以后面的子表达式开头 $表示以前面的子表达式结尾
        System.out.println(str.matches("^a[abc]c$"));
        //匹配手机号
        System.out.println(str.matches("^1[4-9]\\d{9}"));
        //23523@qq.com
        String emailStr = "234123434@sina.com";
        //匹配邮箱
        String regEx = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
        System.out.println(emailStr.matches(regEx));
    }

4,分组

public static void main(String[] args) {
        String str = "12345java";
        Pattern pattern = Pattern.compile("(\\d+)(\\w+)");
        Matcher matcher = pattern.matcher(str);
        //一定要匹配上才有分组
        if (matcher.matches()){
            //表示返回这个表达式
            System.out.println(matcher.group());
            //表示返回第一个分组的内容
            System.out.println(matcher.group(1));
        }
    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值