Python 正则表达式 Re模块的一些简单入门知识
2017-12-06 00:00
1016 查看
摘要: 要想抓取一个网页,
首先要会用Python Request,
其次就是Python正则表达式。
就这样默默努力,
总有一天会得到自己想要的,
-------------------------------------------------
re模块提供了Perl风格的正则表达式模式
re模块使Python语言拥有全部的正则表达式功能
re提供与compile()生成的正则表达式对象拥有的一些列方法功能完全一致的函数
re.match('匹配的正则表达式', '要匹配的字符串', '标志位,控制正则表达式的匹配方式')
re.match(pattern, string, flags=0)
re.search('匹配的正则表达式', '要匹配的字符串', '标志位,控制正则表达式的匹配方式')
re.match(pattern, string, flags=0)
re.search():匹配整个字符串,直到找到一个匹配
re.sub(pattern, repl, string, count=0, flags=0) 用于替换字符串中的匹配项
re.I 对大小写不敏感
re.L 做本地化识别匹配
re.M 多行匹配,影响^和$
re.S 使.匹配包括行在内的所有字符
re.U 根据Unicode字符集解析字符
首先要会用Python Request,
其次就是Python正则表达式。
就这样默默努力,
总有一天会得到自己想要的,
-------------------------------------------------
Python 正则表达式
检查一个字符串是否与某种模式匹配re模块提供了Perl风格的正则表达式模式
re模块使Python语言拥有全部的正则表达式功能
re提供与compile()生成的正则表达式对象拥有的一些列方法功能完全一致的函数
1.re.match()
从字符串的起始位置匹配一个模式,如果不是从起始位置匹配,返回Nonere.match('匹配的正则表达式', '要匹配的字符串', '标志位,控制正则表达式的匹配方式')
re.match(pattern, string, flags=0)
# -*- coding: utf-8 -*- import re # 在起始位置匹配 print re.match('www', 'www.runoob.com').span() # (0, 3) # 不在起始位置匹配 print re.match('com', 'www.runoob.com') # None
2.使用group(num)或者groups()来获取匹配表达式
可以同re.match()/re.search()搭配使用# -*- coding: utf-8 -*- import re line = 'Cats are smarter than dogs' matchObj = re.match(r'(.*) are (.*?) .*', line, re.M|re.I) # 大小写不敏感、多行匹配 if matchObj: print 'matchObj.group(): ', matchObj.group() # Cats are smarter than dogs print 'matchObj.group(1): ', matchObj.group(1) # Cats print 'matchObj.group(2): ', matchObj.group(2) # smarter else: print 'No match'
3.re.search()
扫描整个字符串并返回第一个成功的匹配re.search('匹配的正则表达式', '要匹配的字符串', '标志位,控制正则表达式的匹配方式')
re.match(pattern, string, flags=0)
# -*- coding: utf-8 -*- import re # 在起始位置匹配 print re.search('www', 'www.runoob.com').span() # (0, 3) # 不在起始位置匹配 print re.search('com', 'www.runoob.com').span() # (11, 14)
4.re.match()与re.search()的区别
re.match():只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,直接返回Nonere.search():匹配整个字符串,直到找到一个匹配
# -*- coding: utf-8 -*- import re line = 'Cats are smarter than dogs' matchObj = re.match(r'dogs', line, re.M|re.I) if matchObj: print 'match: ', matchObj.group() else: print 'No match' searchObj = re.search(r'dogs', line, re.M|re.I) if matchObj: print 'search: ', searchObj.group() else: print 'No search' # 输出 # No match # No search
5.检索和替换
re.sub('正则中的模式字符串', '替换的字符串/可以是一个函数', '要被查找替换的原始字符串', '模式匹配后替换的最大次数', '标志位')re.sub(pattern, repl, string, count=0, flags=0) 用于替换字符串中的匹配项
# -*- coding: utf-8 -*- import re phone = '2004-959-559 # 这是一个国外电话号码' # 删除字符串中的Python注释 num = re.sub(r'#.*$', '', phone) print '电话号码是:', num # 2004-959-55 # 删除非数字的字符串 num = re.sub(r'\D', '', phone) print '电话号码是:', num # 200495955
6.正则表达式修饰符-可选标志
多个标志位可以用|来指定re.I 对大小写不敏感
re.L 做本地化识别匹配
re.M 多行匹配,影响^和$
re.S 使.匹配包括行在内的所有字符
re.U 根据Unicode字符集解析字符
相关文章推荐
- python爬虫入门(1) 基础知识 ; 正则表达式 Re 模块
- 简单学正则表达式re模块-python
- python爬虫入门(2)re模块-正则表达式
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
- VII Python(6)基础知识(re正则表达式、MySQLdb模块)
- Python 正则表达式,re模块
- Python之re模块 - 正则表达式操作
- python正则表达式re模块用法详解
- python学习笔记正则表达式re模块
- Python学习笔记6-Python中re(正则表达式)模块学习
- 【python学习】re模块——正则表达式
- python模块学习--python正则表达式处理模块re
- Python基础教程之正则表达式基本语法以及re模块
- PYTHON RE模块 正则表达式的使用
- python模块之re正则表达式
- python正则表达式简单爬虫入门+案例(爬取猫眼电影TOP榜)
- Python中re(正则表达式)模块学习
- Python之re模块 —— 正则表达式操作
- Python的re模块正则表达式操作
- python正则表达式re模块详细介绍