正则表达式的使用

正则表达式描述了一种字符串的匹配模式,可以对指定的字符串进行检查,常用来对用户的输入值做校验。使用方式如下:

1.次数匹配

*:表示前面的子表达式可以出现零次到多次

?:表示前面的子表达式可以出现零次到一次

+:表示前面的子表达式可以出现一次到多次

String str = "javaaaa";
        System.out.println(str.matches("java+"));//true
        System.out.println(str.matches("java?"));//false
        System.out.println(str.matches("java*"));//true

2.字符 符号的匹配

\d:用来匹配数值符号 0-9

\w:匹配a-z A-Z 0-9 

\s:匹配任何空白字符,包括空格、制表符、换页符等等, 等价于 [\f\n\r\t\v] 

.:匹配任意字符 除了换行\n

\\.:匹配实心点.

String str = "java2342";
// \d 用来匹配数值符号 0-9
System.out.println("\\d: " + str.matches("java\\d+"));
// \w 匹配a-z A-Z 0-9 _
System.out.println("\\w: " + str.matches("\\w+"));
// \s匹配任何空白字符,包括空格、制表符、换页符等等, 等价于 [\f\n\r\t\v] 
System.out.println("\\s: " + str.matches("\\w+\\s\\d+"));
// . 匹配任意字符 除了换行\n
System.out.println(". : " + str.matches(".+"));
// \\. 就只是匹配 实心点 . 
System.out.println("\\. : " + str.matches("\\w+\\."));

3.[ ] 中括号匹配任意一个字符

范围匹配:a-z A-Z 0-9

或:|

[^ ] :除了[ ]的任意一个字符都可以

{n}:表示前面的字符出现n次
{m,n}:表示前面的字符最少出现m次,最多出现n次

public static void method4() {
        // 模式
        String regEx = "1[3-9]\\d{9}";
        String str = "10678966661";
        System.out.println(str.matches(regEx));
        String str2 = "a&c";
        System.out.println("[]: " + str2.matches("a[bcd23456]c"));
        // 范围匹配 a-z A-Z 0-9
        System.out.println("[0-9]: " + str2.matches("a[0-9a-z]c"));
        // | 或
        System.out.println("[||]: " + str2.matches("a[3|a|b]c"));
        // 匹配[^] 除了[]的任意一个字符都可以
        System.out.println("[^ ]: " + str2.matches("a[^3ab]c"));
    }

4.分组

要使用()中括号现将正则正则表达式进行分组

Pattern pattern = Pattern.compile(regex);//加载regex到模式( Pattern)类

Matcher matcher = pattern.matcher(str);//调用模式的matcher()方法并且将str传入 得到匹配器

matcher.matches();//调用匹配器的matchers方法 返回是否匹配 boolean值

macher.group(0);//获取组信息 第0组是整个字符串

public static void method5() {
        String str = "23555@qq.com";
        Pattern pattern = Pattern.compile("(\\w+)@(qq.com)");
        Matcher matcher = pattern.matcher(str);
        // 一定要先匹配才能根据组号 获取组的信息
        if (matcher.matches()) {
            System.out.println("======");
            System.out.println(matcher.group(0));
            System.out.println(matcher.group(1));
            System.out.println(matcher.group(2));
        }
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值