设为首页 收藏本站
查看: 844|回复: 0

[经验分享] python正则表达式基础

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-20 10:11:18 | 显示全部楼层 |阅读模式
#1 字符匹配
import re
r=r'ab'
print re.findall(r,'abcdefgabcd')
#2 如果有元字符,注意使用转义符'\'
r=r'1\*2'
print re.findall(r,'01*234501*2345')

#元字符介绍
#3 ^ 匹配行首
r=r'^123'
print re.findall(r,'1234512345')
#4 $ 匹配行尾
r=r'345$'
print re.findall(r,'1234512345')
#5 . 匹配单字符
r=r'3.5'
print re.findall(r,'1234512345')
#6 [] 匹配指定的一个字符集
r=r'a[a-zA-Z0-9]c'
print re.findall(r,'abc,aCc,a5c,a3c,cfg')
#7 [^ ] 补集匹配不在区间范围内的字符,注意^放在前面
r=r'a[^0-9]c'
print re.findall(r,'abc,aCc,a5c,a3c,cfg')

#特殊意义字符
#8 \d 代表数字[0-9]
r=r'a\dc'
print re.findall(r,'abc,aCc,a5c,a3c,cfg')
#9 \D 非数字
r=r'a\Dc'
print re.findall(r,'abc,aCc,a5c,a3c,cfg')
#10 \s 空白字符
r=r'a\sc'
print re.findall(r,'abc,aCc,a5c,a3c,cfg,a c,a   c')
#11 \S 非空白字符
r=r'a\Sc'
print re.findall(r,'abc,aCc,a5c,a3c,cfg,a c,a   c')
#12 \w 单词字符[a-zA-Z0-9_]
r=r'a\wc'
print re.findall(r,'abc,aCc,a5c,a3c,cfg,a c,a   c,a_c')
#13 \W 非单词字符
r=r'a\Wc'
print re.findall(r,'abc,aCc,a5c,a3c,cfg,a c,a   c,a_c')
#14 {} 前一个字符的重复的次数
r=r'a{2}c'
print re.findall(r,'1aac,2aacc,3aaaaac')
#15 前一个字符在一个范围内的重复次数
r=r'a{1,4}c'
print re.findall(r,'ac,aacc,aaaaac')
#16 * 将前一字符匹配大于等于0次,{0,}效果等价于*
r=r'1[a]*c'
print re.findall(r,'1c2,1aacc2,1aaaaac2')
#17 + 将前一字符匹配大于等于1次,{1,}效果等价于+
r=r'1[a]+c'
print re.findall(r,'1c2,1aacc2,1aaaaac2')
#18 ? 将前一字符匹配0次或1次,表示是否出现,{0,1}效果等价于?
r=r'1[ab]?c'
print re.findall(r,'1c,1ac2,1bc2,1abc2')
#19 *? 尽可能少的匹配
r=r'1.*?c'
print re.findall(r,'1abc1,1abc1,c')
#20 () 分组,注意把'\.com\.cn'放在前面,整体加上括号作为一个大的分组处理方便看出来匹配到的是哪个
r=r'(\w+@\w+(\.com\.cn|\.com|\.cn))'
print re.findall(r,'zhzhgo@iyunv.com.cn')

运行结果如下:
>>>
1 ['ab', 'ab']
2 ['1*2', '1*2']
3 ['123']
4 ['345']
5 ['345', '345']
6 ['abc', 'aCc', 'a5c', 'a3c']
7 ['abc', 'aCc']
8 ['a5c', 'a3c']
9 ['abc', 'aCc']
10 ['a c']
11 ['abc', 'aCc', 'a5c', 'a3c']
12 ['abc', 'aCc', 'a5c', 'a3c', 'a_c']
13 ['a c']
14 ['aac', 'aac', 'aac']
15 ['ac', 'aac', 'aaaac']
16 ['1c', '1aac', '1aaaaac']
17 ['1aac', '1aaaaac']
18 ['1c', '1ac', '1bc']
19 ['1abc', '1,1abc', '1,c']
20 [('zhzhgo@iyunv.com.cn', '.com.cn')]
>>>



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-88601-1-1.html 上篇帖子: Python之strip与split函数 下篇帖子: python特殊函数之lambda和map python 表达式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表