python -正则表达式
2016-07-01 12:42
387 查看
# Python - 正则表达式 ''' \d 可以匹配一个数字 \w 可以匹配一个祖母或者数字 : '00\d' 可以匹配 '007' 无法匹配 '00w' : '\d\d\d' 可以匹配 '101' : '\w\w\w' 可以匹配 'pyt' . 可以匹配任意字符串 : 'py.' 可以匹配'pyc' 'python' 要匹配变长的字符,用 * 表示任意个字符(包括0个), 用+ 表示至少一个 ,? 表示0或1个 ,{n} 表示n个,{n-m} 表示n-m个 : \d{3}\s+\d{3-8} \d{3} 表示要匹配3个数字 \s可以匹配一个空格 \s+ 表示至少要一个空格 \d{3-8} 表示3-8个数字 进阶: 要做精确的匹配, 可以用[] :[0-9a-zA-Z\_] 可以匹配一个数字或者字母或者下划线 :[0-9a-zA-Z\_]+ 至少匹配一个数字或者字母或者下划线 :[a-zA-Z\_][0-9a-zA-Z\_]{0, 19}更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)。 A|B 可以匹配 A或B ^表示行的开头,^\d表示必须以数字开头 $表示行的结束,\d$表示必须以数字结束 注意 :强烈建议使用python 的r前缀 , 就不用考虑转义的问题 ''' import re re.match(r'^\d{3}\-\d{3,8}$', '010-12345') <_sre.SRE_Match object at 0x1026e18b8> re.match(r'^\d{3}\-\d{3,8}$', '010 12345') ''' match()方法判断是否匹配,如果匹配成功,返回一个Match对象,否则返回None。常见的判断方法就是: ''' test = '用户输入的字符串' if re.match(r'正则表达式', test): print 'ok' else: print 'failed' # 字符串切割 import re re.split(r'\s+' , 'a b c de') ['a', 'b', 'c', 'de'] re.split(r'[\s\,\;]+' , 'a,b;; c d') ['a', 'b', 'c', 'd'] # 分组 ''' 用() 表示出要提取的分组 group(0) : 原始字符串 group(1) group(2) ... : 分别表示第 1,2,3, .. 个子串 ''' m = re.match(r'^(\d{3})-(\d{3,8})$', '010-12345') m.group(0) '010-12345' m.group(1) '010' m.group(2) '12345' # eg: t = '19:05:30' m= re.match(r'^(0[0-9]|1[0-9]|2[0-3]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])$',t) m.group(0) '19:05:30' m.group(1) '19' m.group(2) '05' m.group(3) '30' >>> # 贪婪匹配 >>> #编译 ''' 当我们在Python中使用正则表达式时 , re模块内部会干两件事: 1.编译正则表达式 2.用编译后的正则表达式去匹配字符串 如果一个正则表达式要重复使用千次,处于效率的考虑,我们可以预编译该正则表达式 .. 接下来直接匹配 ''' re_telephone = re.compile(r'^(\d{3})-(\d{3,8})$') re_telephone.match('010-12345').groups() ('010', '12345') re_telephone.match('010-8086').groups() ('010', '8086')
相关文章推荐
- python判断字符串编码的简单实现方法(使用chardet)
- Python字符编码判断方法分析
- python面相对象进阶
- python异常处理
- python R 实现蒙特卡洛算法计算pi值
- python在Windows下安装setuptools(easy_install工具)步骤详解
- Python 模块之Logging(四)——常用handlers的使用
- python-成长之路
- python3.5 URLError: <urlopen error [Errno 10061]报错解决方法
- python抓取并保存html页面时乱码问题的解决方法
- Python logging模块详解
- PYTHON端口扫描小程序
- python一些模块
- python2和python3在windows共存问题
- python第一天
- 一个python程序——聊天
- python-操作exel(xlrd,xlwt)
- python处理html转义字符的方法详解
- PyPy环境下lxml库的安装
- python之除法获取真实的结果