正则表达式

正则表达式


字符集合

正则表达式说明
^行的开头
$行的结尾
[abc]a、b、c中任意⼀个字符
[^abc]除了a、b、c的任意字符
[a-z]a、b、c、… … 、z中的任意⼀个字符
[a-zA-Z0-9]az、AZ、0~9中任意⼀个字符
[a-z&&[^bc]]a~z中除了b和c以外的任意⼀个字符,其中"&&"表示“与”的关系
.任意⼀个字符
\d任意⼀个数字字符,相当于 [0-9]
\D非数字字符,相当于[^0-9]
\w单词字符,相当于 [a-zA-Z_0-9]
\s空⽩字符,相当于 [\t\n\x0B\f\r]

转义字符

正则表达式说明
\..
\**
\++
\--

Pattern.matches(regex, str) // 生成的regex是否与输入的匹配

 //[a-zA-z0-9] 里面的字符至少出现3次,不超过5次
        String str = "[a-zA-z0-9]{3,5}";
        System.out.println(Pattern.matches(str, "12we"));
        //true
 String str1 = "[a-z]"; //生成a~z的一个字符
        System.out.println(Pattern.matches(str1,"t"));//true
        System.out.println(Pattern.matches(str1,"1"));//false
    //    ^[a-z]必须以字母开始{5,17} 出现5~17位
        String str2="^[a-z][a-zA-z0-9]{5,17}";
        System.out.println(Pattern.matches
        (str2,"q12334"));//true
        System.out.println(Pattern.matches
        (str2,"112334"));//false
 //^1[0-9]{10}  必须1开头,后面0-9随机10位
        String str3="^1[0-9]{10}";
        System.out.println(Pattern.matches
        (str3,"18205700493"));

Greedy 数量词

正则表达式说明
X?X,一次或一次也没有
X*X,零次或多次
X+X,一次或多次
X{n}X,恰好 n 次
X{n,}X,至少 n 次
X{n,m}X,至少 n 次,但是不超过 m 次
        //   \w 单词字符:[a-zA-Z_0-9] a-zA-z0-9加一个_ 下划线
        // [a-zA-z]\\w{5,17}@qq\\.com 第一个字符a-z中取一个
        // \\w{5,17} a-zA-z0-9加一个_ 下划线 出现5~17个
       String email="z1d_12_97405643@qq.com";
        String matches="[a-zA-z]\\w{5,17}@qq\\.com";
        System.out.println(Pattern.matches(matches,email));
        //true
        String matches1="\\w{5,12}@qq\\.com";
        System.out.println(Pattern.matches(matches1,email));
        //z1d_12_97405643@qq.com 的z1d_12_97405643长度>17 false
/*替换
        * public String replaceAll(String regex,
        *  String replacement)
           参数
        regex -- 匹配此字符串的正则表达式。
        newChar -- 用来替换每个匹配项的字符串。*/
        String str4="哈哈哈草,啊操,呵呵艹";
        String str5="(草)|(操)|(艹)";
        String str6=str4.replaceAll(str5,"***");
        System.out.println(str6);
        //哈哈哈***,啊***,呵呵***
 /*切割 spilt()
 \d 数字:[0-9] 
\\d+ [0-9]出现一次或者多次*/
        String str7="String123Array45object789";
        String regex="\\d+";
        String[] split= str7.split(regex);
        //String123Array45object789 以数字为分割
        System.out.println(Arrays.toString(split));
      //[String, Array, object]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值