Day24--Python--常用模块03--正则表达式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Day24--Python--常用模块03--正则表达式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2403字,纯文字阅读大概需要4分钟。
内容图文
![Day24--Python--常用模块03--正则表达式](/upload/InfoBanner/zyjiaocheng/853/221c97d104a74d73a9b009094e6f6c05.jpg)
正则表达式是对字符串操作的?种逻辑公式. 我们?般使?正则表达式对字符串进?匹配和过滤.
使?正则的优缺点:
优点: 灵活, 功能性强, 逻辑性强.
缺点: 上?难. ?旦上?, 会爱上这个东?
?具: 各??本编辑器?般都有正则匹配功能. 我们也可以去
http://tool.chinaz.com/regex/进?在线测试.
正则表达式由普通字符和元字符组成. 普通字符包含??写字?, 数字.
元字符: 元字符才是正则表达式的灵魂. 元字符中的内容太多了, 在这?我们只介绍?些
常?的.
1. 字符组
字符组很简单?[]括起来. 在[]中出现的内容会被匹配. 例如:[abc] 匹配a或b或c
如果字符组中的内容过多还可以使?- , 例如: [a-z] 匹配a到z之间的所有字? [0-9]
匹配所有阿拉伯数字
[a-zA-Z0-9]匹配的是所有数字和大小写字母
2. 简单元字符
基本的元字符.(常用)
. 匹配除换?符以外的任意字符 \w 匹配字?或数字或下划线 \s 匹配任意的空?符 \d 匹配数字 \n 匹配?个换?符 \t 匹配?个制表符 \b 匹配?个单词的结尾 ^ 匹配字符串的开始 $ 匹配字符串的结尾 \W 匹配?字?或数字或下划线 \D 匹配?数字 \S 匹配?空?符 a|b 匹配字符a或字符b () 匹配括号内的表达式,也表示?个组 [...] 匹配字符组中的字符 [^...] 匹配除了字符组中字符的所有字符
3. 量词
我们到?前匹配的所有内容都是单??字符号. 那如何?次性匹配很多个字符呢,
我们要?到量词
* 重复零次或更多次 + 重复?次或更多次 ? 重复零次或?次 {n} 重复n次 {n,} 重复n次或更多 {n,m} 重复n到m次
4. 惰性匹配和贪婪匹配
在量词中的*, +,{} 都属于贪婪匹配. 就是尽可能多的匹配到结果.
str: 麻花藤昨天让英雄联盟关服了 reg: 麻花藤.* 此时匹配的是整句话
在使?.*后?如果加了? 则是尽可能的少匹配. 表?惰性匹配 (尽可能少的匹配)
str: 麻花藤昨天让英雄联盟关服了 reg: 麻花藤.*? 此时匹配的是 麻花藤 str: <div>胡辣汤</div> reg: <.*> 结果: <div>胡辣汤</div> str: <div>胡辣汤</div> reg: <.*?> 结果: <div> </div> str: <div>胡辣汤</div> reg: <(div|/div*)?> 结果: <div> </div>
.*?x的特殊含义 找到下?个x为?.
str: abcdefgxhijklmn reg: .*?x 结果:abcdefgx
5. 分组
在正则中使?()进?分组. 比如. 我们要匹配?个相对复杂的?份证号. ?份证号分
成两种. 老的?份证号有15位. 新的?份证号有18位. 并且新的?份证号结尾有可能是x.
给出以下正则: ^[1-9]\d{13,16}[0-9x]$ # 此方法有问题,16-17, 或第15位数字为X 均可能出现 ^[1-9]\d{14}(\d{2}[0-9x])?$ ^([1-9]\d{16}[0-9x]|[1-9]\d{14})$
6. 转义
在正则表达式中, 有很多有特殊意义的是元字符, ?如\n和\s等,如果要在正则中匹
配正常的"\n"?不是"换?符"就需要对"\"进?转义, 变成'\\'.在python中, ?论是正则表达式, 还
是待匹配的内容, 都是以字符串的形式出现的, 在字符串中\也有特殊的含义, 本身还需要转
义. 所以如果匹配?次"\n", 字符串中要写成'\\n', 那么正则?就要写成"\\\\n",这样就太麻烦了.
这个时候我们就?到了r'\n'这个概念, 此时的正则是r'\\n'就可以了.
内容总结
以上是互联网集市为您收集整理的Day24--Python--常用模块03--正则表达式全部内容,希望文章能够帮你解决Day24--Python--常用模块03--正则表达式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。