常见的正则表达式 尽可能匹配最多的_【墨学课堂】IT学生必备的正则表达式教程...

bf0764acfd83eec1a8366d651efc4299.gif

52cb450a635f18c40932d7550ca75c37.png

我们经常看到身边的一些大佬用正则表达式增加编程的效率,自己写的一长串if else loop等不如学霸同学一行正则表达式验证来的迅速。今天墨学就来教大家正则表达式。

part 1

正则表达式(Regular Expression)通常用来匹配验证一些字符串是否符合某种句法规则。例如:用户的输入是否是xxxxx@gmail.com, 用户的年月日输入是否是XXXX – XX – XX,用户的输入是否包含下划线数字/字符等asdfb_23445。

part 2

工具网站:https://regex101.com/r/1paXsy/1

e507cd423d7d0bd7b04ea6cbfa15732b.png

part 3

接下来让我们认识元字符:匹配行为的符号

元字符

解释说明

.

除了换行符\n外匹配任何单个字符。

例如正则表达式a.b匹配a¥b,acb,a_b等

[ ]

字符种类,匹配方括号里面的任意一个字符。

例如正则表达式a[asfasdf]b匹配aab,asb,afb等

[^ ]

和上面不同的是,该元字符表示否定的字符种类,匹配除了方括号里的任意字符

*

检查*之前的字符是否存在>=0次

例如正则a*b匹配b,aab,aaaaaab等

+

检查+之前的字符是否存在1次以上

例如正则a+b匹配ab,aaaab

$

匹配以$之前的字符为结尾的字符串

例如表达式ab$ 匹配qwerqweab

a*b$匹配   asdfasdfb

表达式?之前的字符为可选,也就是要么出现1次,要么出现0次。

问题:这个功能不是和上面的*重复了吗,他俩有什么区别?

在匹配成功的前提下,*会尽可能匹配更多字符来匹配句法规则,?会尽可能匹配少的字符来匹配句法规则。例如a?b的正则表达式,aaaab字符串会检测出末位的ab匹配aaaab,同样的字符串,表达式a*b会匹配出整个字符串aaaab

{n,m}

n和m都为非负整数,该正则表示在花括号前的字符最少出现n次,最多出现m次。同时就可以判断出正则表达式{n}表示确定匹配n次,{n,}表示最少匹配n次。Mo{1,3}xue将匹配Mooxue或者Mooooxue。不匹配Mxue

(abcdefg)

匹配和圆括号中完全相同的字符集,例如正则表

达Mo(xue)匹配Moxue!

或运算符,匹配|之前或者之后的字符

例如正则表达式aa|bb可以匹配字符串

aab, abb, aabb

\

转义字符,

下期预告

下期我们将会跟大家讲解更多lecture上的知识点,同时,我们总结一下前两周的教学内容,希望大家在FIT5196这门课中学习顺利~

付费课程小广告

a5f916c9f7450cfe3f522609323b6f1a.png

23344e5ee20e350ac54230c2ad09b9f7.png

42ecd14e54bf0482201bb5a462cf9e59.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值