Java25岁了!还不会正则表达式?

都2020年了,Java的正则还不会用,是不是太对不起Java 的25岁生日了!来,多少学点简单的。

在这里插入图片描述
正则表达式由俩种基本字符类型组成:原义(正常)文本字符和元字符。含有一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符

一、正则表达式元字符一览

元字符正则表达式中的写法意义
..代表任意一个字符
\d\\d代表0-9的任何一个数字
\D\\D代表任何一个非数字字符
\s\\s代表空白字符,如’\t’、’\n’
\S\\S代表非空白字符
\w\\w代表可用作标识符的字符(a,A,1,2,_等),但不包括"$"
\W\\W代表不可用于标识符的字符
\p{Lower}\\p{Lower}代表小写字母a-z
\p{Upper}\\p{Upper}代表大写字母A-Z
\p{ASCII}\\p{ASCII}ASCII字符
\p{Alpha}\\p{Alpha}字母字符
\p{Digit}\\p{Digit}十进制数字,即0-9
\p{Alnum}\\p{Alnum}数字或字母字符
\p{Punct}\\p{Punct}标点符号
\p{Graph}\\p{Graph}可见字符:[\p{Alnum}\p{Punct}]
\p{Print}\\p{Print}可打印字符:[\p{Graph}\x20]
\p{Blank}\\p{Blank}空格或制表符:[\t]
\p{Cntrl}\\p{Cntrl}控制字符:[\x00-\x1F\x7F]

注:在正则表达式中“.”代表任何一个字符,因此在正则表达式中如果想使用普通意义的点字符“.”,必须使用转义字符“/”。还有就是元字符只能代表一个字符,如下:

//测试
public class Regex {
    public static void main(String[] args) {
        String test = "ab";
        //matches方法为String正则表达式判断的方法
        //该字符串符合正则表达式则返回true
        System.out.println(test.matches("\\p{Lower}b"));
        //打印结果为true
    }
}

二、自定义元字符

上表为Java已经给我们定义好的元字符,当然我们也可以自己去定义元字符。正则表达式中自定义元字符的规则:使用方括号括起若干个字符来表示一个元字符。
示例:

自定义元字符意义
[^456]代表4、5、6之外的任何一个字符
[a-r]代表a-r中的任何一个字符
[a-zA-Z]可表示任意一个英文字母
[a-e[g-z]]代表a-e,或者g-z中的任何一个字母(并运算
[a-o&&[def]]代表字母d、e、f(交运算
[a-d&&[^bc]]代表字母a、d(差运算

不测了,自己去测,不动手还想学会?我看是想学废。
在这里插入图片描述

三、限定修饰符

到目前为止我们发现无论是自定义还是原有的元字符,都只是能表示一个字符。总不能我去正则判断个邮箱写十几个元字符吧。
在这里插入图片描述
在正则表达式中允许使用限定修饰符来限定元字符出现的次数。例如: “a?”表示a字符可在字符串中出现0次或一次。

限定修饰符意义示例
0次或1次A?
*0次或多次A*
+一次或多次A+
{n}正好出现n次A{2}
{n, }至少出现n次A{3,}
{n,m}出现n~m次A{2,6}

在这里总结一下需要注意的点:

1)使用限定修饰符出现n次必须是连续出现。

"aba".matches("a*b");//false
"aab".matches("a*b");//true

2)每一个文本字符或者元字符只能代表一个字符(限定符除外)。

"aab".matches("a*");//false
"aab".matches("a*b");//true

讲的比较简单了,开始符,结束符,pattern类等都是没有提到的,如果使用频繁或者深入学习可以自己去百度深入一下,简单匹配这些是够用的啦,告辞!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值