正则表达式

正则表达式:规则表达式,使用一些特定的符号来制定一个规则,使用此规则,来规范制定的字符串。

字符类
[ abc ] a、b 或 c (简单类)
[ ^ abc ]任何字符,除了a、b 或 c(否定)
[ a-zA- Z ]a 到 z 或 A 到 z,两头的字母包括在内(范围)
[ a-d [ m-p ] ]a 到 d 或 m 到 p: [a - dm - p ] (并集)
[a - z && [ def ] ]d、e 或 f(交集)
[a- z && [ ^bc ] ]a 到 z,除了 b 和 c : [ ad - z ](减去)
[ a - z && [ ^m - p ] ]a 到 z,而非 m 到 p : [ a - lq - z ] (减去) 
预定义字符类
.任何字符(与行结束符可能匹配也可能不匹配)
\d数字: [ 0 - 9 ]
\D非数字: [ ^ 0 - 9 ]
\s空白字符: [ \t \n \x0B \f \r ]
\S非空白字符: [ ^ \s ]
\w单词字符: [ a - zA - Z  _ 0 - 9 ]
\W非单词字符: [ ^ \w ]
边界匹配器
^行的开头
$行的结尾
\b单词边界
\B非单词边界
\A输入的开头
\G上一个匹配的结尾
\Z输入的结尾,仅用于最后的结束符(如果有的话)
\z输入的结尾

Greedy数量词
X?X,一次或一次也没有
X * X, 零次或多次
X +X,一次或多次
X { n }X, 恰好 n 次
X { n , }X, 至少n次
X { n , m }X, 至少 n 次,但是不超过 m 次

第一种
         定义一个规则
        Pattern p = Pattern.compile("a*b");
        //输入内容
        Matcher m = p.matcher("aaaaaab");
        //匹配

        boolean b1 = m.matches();
        System.out.println(b1);

第二种
        String s = "abc";
        boolean b2 = s.matches("a*b");
        System.out.println(b2);


import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ZhengZe {
    public static void main(String[] args) {
        //第一种:
         //定义一个规则
        Pattern p = Pattern.compile("a*b");
        //输入内容
        Matcher m = p.matcher("aaaaaab");
        //匹配

        boolean b1 = m.matches();
        System.out.println(b1);
        //第二种:
        String s = "abc";
        boolean b2 = s.matches("a*b");
        System.out.println(b2);
       //例:
        // \\d 只对第一个字符串进行匹配
        String s1 = "1234567";
        System.out.println(s1.matches("\\d"));//false
        // ? 表示一次或一次业没有
        String s2 = "";
        String s3 = "1";
        System.out.println(s2.matches("\\d?")); //true
        System.out.println(s3.matches("\\d?")); //true
        //表示零次或多次
        String s4 = "12345";
        System.out.println(s2.matches("\\d*")); //true
        System.out.println(s4.matches("\\d*")); //true
        //表示至少一次或多次
        System.out.println(s2.matches("\\d+")); //false
        System.out.println(s3.matches("\\d+")); //true
        System.out.println(s4.matches("\\d+")); //true
        //表示n次
        String s5 = "123";
        System.out.println(s5.matches("\\d{5}"));//false
        System.out.println(s4.matches("\\d{5}"));//true
        //表示至少n次
        System.out.println(s3.matches("\\d{3}"));//false
        System.out.println(s5.matches("\\d{3}"));//true
        System.out.println(s4.matches("\\d{3,}"));//true
        //表示至少n次,至多m次
        System.out.println(s4.matches("\\d{3,5}"));//true
        System.out.println(s4.matches("\\d{3,4}"));//false
        /*
        [0-9] 表示数字
        [^0-9] 表示非数字
        [abc] 表示a或b或c
        \\w 表示字母数字下划线
        \\W 表示非\\w
        \\. 表示任何字符 用\\.进行转义
        [a-zA-Z] 或[A-z]:
        例:手机格式,QQ格式,邮箱格式
         */
        String phone = "15877485631";
        String phone1 = "1421452352";
        System.out.println(phone.matches("1[35789]\\d{9}"));//true
        System.out.println(phone1.matches("1[35789]\\d{9}"));//false

        String qq = "2460084043";
        String qq2 = "0242364375";
        System.out.println(qq.matches("[1-9]\\d{5,11}"));//true
        System.out.println(qq2.matches("[1-9]\\d{5,11}"));//false

        String email = "xin2460084043@163.com";
        String email2 = "xidje1245235dwdk.com";
        System.out.println(email.matches("\\w{6,20}@\\w{2,6}\\.(com|com\\.cn)"));//true
        System.out.println(email2.matches("\\w{6,20}@\\w{2,6}\\.(com|com\\.cn)"));//false

    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值