Python 正则表达式

来源:互联网 发布:2017 淘宝 我的空间 编辑:程序博客网 时间:2024/06/05 20:44
正则表达式 也就是Python的re模块。(并不是所有的字符串处理都可以用正则表达式处理)

正则表达式元字符如下:
在使用正则的时候 首先要import re
正则规范为 s = r‘ab’(意思为定义一个 名称为s的 规则为ab的正则)
re.findall(s,'ababbababa')代表在字符串‘ababababab’中的所有包含ab的选项。

. 它匹配除了换行字符外的任何字符,在 alternate 模式(re.DOTALL)下它甚至可以匹配换行
r = r‘.’
re.findall(r,'abcdefg123455[]')
结果为  ab c d e f g 1 2 3 4 5  5 [ ] 表示匹配任何字符 

^ 匹配行首。除非设置 MULTILINE 标志,它只是匹配字符串的开始。 
r = r'^ab'
re.findall(r,'abcd') 返回值为‘ab’
re.findall(r.'cabd')返回值为空
只匹配行首为正则的表达式

$ 匹配行尾,行尾被定义为要么是字符串尾,要么是一个换行字符后面的任何位置。 
同^ 只是匹配的只是行尾

* 重复0或N次 
r = r'a*b'
re.findall(r,'aaaaaab,aaab,ab,aaaab,b') 
结果为aaaaaab aaab ab aaaab b

+ 重复1或N次 
同* 只是单独的一个b不匹配

? 重复0或1次 
与上面2个类似 但只匹配0个或者1个出现的字符

{} 该限定符的意思是至少有 m 个重复,至多到 n 个重复 
r = r'1{2,4}2'
re.findall(r,'12,1112,112,11112,2')
结果为 1112 112 11112

[] 它们常用来指定一个字符类别,所谓字符类别就是你想匹配的一个字符集(在[]中出现的元字符按正常字符计算) 
r = r'a[bcd]g'
re.findall(r,'aag ,abg,acg,adg,afg')
结果为 abg acg adg

\ 反斜杠后面可以加不同的字符以表示不同特殊意义。它也可以用于取消所有的元字符,这样你就可以在模式中匹配它们了 
例如若想匹配^a字符 则在正则里需要使用\
r1=r'^a'表示以a为开头的字符
r=r'\^a' 表示查找与^a匹配的字符
re.findall(r,'b^a^b^a')
以r1为正则 结果为0,以r为正则 结果为^a ^a
 
| 可选项,或者 "or" 操作符。 
() 组 

http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华为p10开不了机怎么办 眼镜腿夹的头疼怎么办 摩托车车头锁坏了怎么办 夏天骑摩托车戴头盔热怎么办 头盔玻璃罩边固定老是掉怎么办 电动车不戴头盔被扣车怎么办 郴州骑电动车没戴头盔怎么办 配置数据源时发现两个版本怎么办 微信占用内存3g怎么办 打印机显示内存已满怎么办 网页显示代理服务器连接失败怎么办 墙内线路断了怎么办 墙里的电线坏了怎么办 鱼竿最前端断了怎么办 下雨天墙壁与管道间漏水怎么办 电饭锅的电线被雨淋了怎么办 钢琴跨八度手短怎么办 弹钢琴手指不灵活怎么办呢? 理发剪不锋利了怎么办 室外宽带线断了怎么办 接宽带光纤太短怎么办 装修光纤网线太短怎么办 宽带入户线断了怎么办 电信有无线没网怎么办 墙里的网线断了怎么办 墙里网线断了怎么办 3根网线断了怎么办 剪了层次的头发怎么办 小米6充电线坏了怎么办 小米6导航信号弱怎么办 麦多多充不了电怎么办 一加数据线坏了怎么办 小米耳机泡水了怎么办 公司拖欠工资公司破产了怎么办 苹果x外壳掉漆怎么办 手机壳按键很硬怎么办 棉质白衣服染色怎么办 白棉t恤混洗染色怎么办 包包被衣服染色了怎么办 白色衣服染了菜汁怎么办 一加3t屏幕刺眼怎么办