Java中的正则表达式及相关知识(零基础学习)(元字符、交并差运算、限定修饰符、相关方法、常用正则表达式)

正则表达式

定义:正则表达式是String对象的实体,但其包含正则表达式中的元字符(不知道String是一个类的朋友,可以看我之前发的文章 链接: Java中String类的引用和实体相关内容

基础方法(函数)boolean matches(String regex)判断当前String对象的实体是否和regex指定的正则表达式匹配
用途:显而易见,主要用来判断字符串内容是不是和自己想的一样,如:regex=“hh\d”,"\d"作为元字符的意思是0-9任何一个数字,那么"hh1"和"hh2"都是与正则表达式regex匹配的

String regex="hh\\d";
String a="hh1";
String b="hh2";
if(a.matches(regex))
if(b.matches(regex))

上面两个if中的判断结果都是true

常见元字符

在正则表达式中的写法意义
\\.代表.字符
.代表任何一个字符
\\d代表0~9中的任何一个数字
\\D代表任何一个非数字字符
\\s代表空格类字符,如:‘\t’、‘\n’、‘\x0B’、‘\f’、‘\r’
\\S代表非空格类字符
\\w代表可用于标识符的字符(不包括美元符号和非ASCII码字符)
\\W(大写W)代表不能用于标识符的字符
\\p{Lower}小写字母a~z
\\p{Upper}大写字母A~Z
\\p{ASCII}ASCII码字符
\\p{Alpha}字母
\\p{Digit}数字字符,0~9
\\p{Alnum}字母或数字
\\p{Punct}标点符号:!、"、#、$、%、&、'、(、)、*、+、,、-、.、/、:、;、<、=、>、?、@、[、\、]、^、_、`、{、|、}、~、
\\p{Graph}可视字符:\p{Alnum}\p{Punct}
\\p{Print}可打印字符:\p{Print}
\\p{Blank}空格或制表符:\t
\\p{Cntrl}控制字符:[\x00-\x1F\x7F]

[abc]:代表a、b、c中的任何一个

[^abc]:代表除了a、b、c以外的任何字符

[a-zA-Z]:代表英文字母(包括大写和小写)中的任何一个

[a-d]:代表a~d中的任何一个

方括号内允许嵌套方括号,可以进行并、交、差运算

[a-d[m-p]]:代表a-d或m-p中的任何字符(并)

[a-z&&[def]]:代表d、e或f中的任何一个(交)

[a-f&&[^bc]]:代表a、d、e、f(差)

正则表达式中可以使用限定修饰符

下表中的"X"指正则表达式中的一个字符,包括元字符;如果想让限定修饰符作用在更多的字符上,可以用"()"将更多的字符括起来,如:

String regex="(wt){4}"
String a="wtwtwtwt"
if(a.matches(regex))

由于限定修饰符{n}代表出现n次,所以上面if 中的结果就是true了

带限定修饰符的模式意义
X?X出现0次或1次
X*X出现0次或多次
X+X出现1次或多次
X{n}X恰好出现n次
X{n,}X至少出现n次
X{n,m}X出现n次至m次
XYX的后缀是Y
X|YX或Y

例如:regex="@\\w{4}",那么"@abcd"“@天道酬勤”“@Java"和”@bird"都是与之匹配的

常用正则表达式

作用正则表达式
匹配整数string regex="-?[1-9]\\d*"
匹配E-mail"\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?"
身份证号[1-9][0-9]{16}[a-zA-Z0-9]{1}

相关方法

  • 基础方法:boolean matches(String regex) 判断当前String对象的实体是否和regex指定的正则表达式匹配
  • String replaceAll(String regex,String replacement) 把当前String对象的实体中所有和regex匹配的子字符序列用参数replacement替换掉,返回一个新的String对象
  • String[] split(String regex) 将正则表达式regex作为分隔标记分解出当前String对象的实体中的单词,并存放在String数组中
  • 和StringTokenizer或者Scanner配合使用,分解出字符串中的单词。( 链接: Scanner类和StringTokenizer类解析字符序列中的单词
  • 和Pattern类以及Matcher类配合使用,进行模式匹配(大家可以看一下这一篇文章:链接: Java中的模式匹配

大家如果发现错误和遗漏可以发在评论区
创作不易,大家点赞支持一下吧

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EEEzhenliang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值