加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

快速系统的掌握正则表达式

发布时间:2020-12-14 01:21:39 所属栏目:百科 来源:网络整理
导读:之前使用正则表达式有点稀里糊涂的,之前从网上搜到的教程都是乱七八糟的。通过在这个慕课网上学习,才知道原来正则表达式原来可以这样系统的掌握。总结在这里。 第一部分:原子匹配,所有的可见的不可见的字符都可以直接书写用于匹配, 注意1:对于不可见的

之前使用正则表达式有点稀里糊涂的,之前从网上搜到的教程都是乱七八糟的。通过在这个慕课网上学习,才知道原来正则表达式原来可以这样系统的掌握。总结在这里。

第一部分:原子匹配,所有的可见的不可见的字符都可以直接书写用于匹配,
注意1:对于不可见的字符和正则表达式的使用的特殊字符使用反斜杠转义。
注意2:对于中文最好使用unicode编码

第二部分:原子筛选
1点:“|” 表示前后都匹配,或者 ab|bc ab和bc都可以匹配成功。
2点:[abc] 匹配其中任何一个。 (注:”-” 表示区间,例如a到z所有字母可以写成[a-z])
3点:[^abc] 不包含任何一个。

第三部分:原子集合(类似于快捷键一样)
第1点:. 匹配换行符之外的所有字符
第2点:d 匹配数字和[0-9]等价 D是d的补集,等价[^0-9]
第3点:s 匹配不可见的字符和[rntfv]等价,S是s的补集
第4点:w 匹配字母数字和下划线和[0-9a-zA-Z_]等价,W是w的补集

第四部分:量词(修饰匹配前面的原子的个数)

第1点:{n} 恰好出现n次
第2点:{n,} 大于等于n次
第3点:{n,m} 大于等于n次,小于等于m次
第4点:* 匹配0次 1次或者多次,相当于{0,}
第5点:+ 匹配1次或者多次,相当于{1,}
第6点:? 匹配0次或者1次,相当于{0,1}

第五部分:边界控制和模式单元
第1点:^表示以后面的原子作为开头,前面没有任何东西
第2点:$表示以前面的原子作为结尾,后面没有任何东西
第3点:() 括起来的内容作为一个原子例如(ab){2},就表示匹配2个ab,(aa|bb)cd,就表示匹配aacd或者bbcd

第六部分:修正类型(为了消除正则表达式的歧义)
修正类型有好多种,我觉得最重要一个就是关于贪婪模式和懒惰模模式的修正,也是和第四部分相关的。

例如:
正则表达式是:(ab){2,3},匹配对象是:ababab
那匹配的结果是abab, 还是ababab呢,前面的就是懒惰模式,后面的就是贪婪模式。

为了消除这种歧义,你要指定你所使用的模式。不同的正则引擎,指定方式不一样:

例如:
php的是在正则表达式后面加个U或者u,分别表示懒惰模式和贪婪模式 例如’/[0-9]*/U’
java使用的正则引擎是支持在有歧义的量词后面加个?表示懒惰模式,默认是贪婪模式。
例如
[0-9]+? 就表示匹配到尽量少的内容就返回。

正则表达式还有一些其它内容和细节,但是我觉得掌握这些概念,在实际应用中可以构造任何想要的匹配形式了。

转自我的博客:http://zhaoyanblog.com/archives/715.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读