python入门系列17―——正则表达式2
2017-07-06 16:04
393 查看
欢迎前往我的个人博客
3.re.findall
findall()用于非重叠地查找某字符串中一个正则表达式模式出现的情况。
findall()和 search()相似之处在于二者都执行字符串搜索,不同之处是,findall()总返回一个列表。
如果 findall()没有找到匹配的部分,会返回空列表;
如果成功找到匹配部分,则返回所有匹配部分的列表(按从左到右出现的顺序排列)。
4.re.sub 和 re.subn
这2个方法是将某字符串中所有匹配正则表达式模式的部分进行替换。用来替换的部分通常是一个字符串,但也可能
是一个函数,该函数返回一个用来替换的字符串。
subn返回一个表示替换次数的数字,替换后的字符串和表示替换次数的数字作为一个元组的元素返回
5.re.split
根据正则表达式模式分隔字符串
6.finditer
搜索string,返回一个顺序访问每一个匹配结果(Match对象)的迭代器。
7.Pattern
Pattern对象是一个编译好的正则表达式,通过Pattern提供的一系列方法可以对文本进行匹配查找。
Pattern不能直接实例化,必须使用re.compile()进行构造。
Pattern提供了几个可读属性用于获取表达式的相关信息:
pattern: 编译时用的表达式字符串。
flags: 编译时用的匹配模式。数字形式。
groups: 表达式中分组的数量。
groupindex: 以表达式中有别名的组的别名为键、以该组对应的编号为值的字典,没有别名的组不包含在内。
8.正则表达式修饰符 - 可选标志
正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定:
re.I 使匹配对大小写不敏感
re.L 做本地化识别(locale-aware)匹配
re.M 多行匹配,影响 ^ 和 $
re.S 使 . 匹配包括换行在内的所有字符
re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。
3.re.findall
findall()用于非重叠地查找某字符串中一个正则表达式模式出现的情况。
findall()和 search()相似之处在于二者都执行字符串搜索,不同之处是,findall()总返回一个列表。
如果 findall()没有找到匹配的部分,会返回空列表;
如果成功找到匹配部分,则返回所有匹配部分的列表(按从左到右出现的顺序排列)。
import re bt = 'hi' m = re.findall(bt, 'h hello') print m m = re.findall(bt, 'hi hello') print m m = re.findall(bt, 'abchidef ') print m m = re.findall(bt, 'hi shi hih') print m结果:
[] ['hi'] ['hi'] ['hi', 'hi', 'hi']
4.re.sub 和 re.subn
这2个方法是将某字符串中所有匹配正则表达式模式的部分进行替换。用来替换的部分通常是一个字符串,但也可能
是一个函数,该函数返回一个用来替换的字符串。
subn返回一个表示替换次数的数字,替换后的字符串和表示替换次数的数字作为一个元组的元素返回
import re bt = '[0-9]' m = re.sub(bt,'A','a1b2c3') print m m = re.subn(bt,'A','a1b2c3') print m结果:
aAbAcA ('aAbAcA', 3)
5.re.split
根据正则表达式模式分隔字符串
import re bt = '[0-9]' m = re.split(bt, 'a1b2c3') print m bt = ':' m = re.split(':', 'str1:str2:str3') print m结果:
['a', 'b', 'c', ''] ['str1', 'str2', 'str3']
6.finditer
搜索string,返回一个顺序访问每一个匹配结果(Match对象)的迭代器。
import re p = re.compile(r'\d+') for m in p.finditer('one1two2three3four4'): print m.group()
7.Pattern
Pattern对象是一个编译好的正则表达式,通过Pattern提供的一系列方法可以对文本进行匹配查找。
Pattern不能直接实例化,必须使用re.compile()进行构造。
Pattern提供了几个可读属性用于获取表达式的相关信息:
pattern: 编译时用的表达式字符串。
flags: 编译时用的匹配模式。数字形式。
groups: 表达式中分组的数量。
groupindex: 以表达式中有别名的组的别名为键、以该组对应的编号为值的字典,没有别名的组不包含在内。
import re p = re.compile('ab[cd]?', re.I) print "p.pattern:", p.pattern print "p.flags:", p.flags print "re.I:", re.I print "p.groups:", p.groups print "p.groupindex:", p.groupindex结果:
p.pattern: ab[cd]? p.flags: 2 re.I: 2 p.groups: 0 p.groupindex: {}
8.正则表达式修饰符 - 可选标志
正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定:
re.I 使匹配对大小写不敏感
re.L 做本地化识别(locale-aware)匹配
re.M 多行匹配,影响 ^ 和 $
re.S 使 . 匹配包括换行在内的所有字符
re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。
import re m = re.match('foo', 'seaFood',re.I) # no match 匹配失败 if m is not None: print m.group() else: print "匹配失败" m = re.search('foo', 'seaFood',re.I) # search()匹配成功 if m is not None: print m.group() else: print "匹配失败"结果:
匹配失败 Foo
相关文章推荐
- python入门系列16―——正则表达式1
- 【python系列】使用正则表达式去除HTML字符串
- Python入门篇之正则表达式
- python3爬虫之入门基础和正则表达式
- JavaScript语法入门系列(七) 类和对象(正则表达式RegExp)
- python3爬虫之入门和正则表达式
- Python 学习入门(13)—— 正则表达式
- Python爬虫入门七之正则表达式
- python3爬虫之入门基础和正则表达式
- python3爬虫之入门和正则表达式
- 转 Python爬虫入门七之正则表达式
- Python 学习入门(13)—— 正则表达式
- python正则表达式入门笔记
- python-17:正则表达式(一)
- python3爬虫之入门和正则表达式
- Python 学习入门(13)—— 正则表达式
- Python爬虫入门七之正则表达式
- Python爬虫教程——入门七之正则表达式
- Python入门篇之正则表达式
- Python爬虫入门(7):正则表达式