如果想查找在一段文字里所有出现匹配的字符,需要使用findall()函数,而不是使用search()函数。例如,如果有一个英语作家想把一段英语里所有形容词查找出来,他或她就会使用findall()来实现这个功能。
例子:
text = "He was carefully disguised but captured quickly by police."
print(text)
print(re.findall(r"\w+ly", text))
结果输出如下:
He was carefully disguised but captured quickly by police.
[‘carefully‘, ‘quickly‘]
在这个例子里,就是把所有词尾带ly的单词找出来,从结果来看,都是带有ly结尾的单词,已经达到目的。
如果不仅仅想查看英语语句里出现的所有形容词,还想把它的位置找出来,那么使用findall()函数就达不到这个目标,需要使用finditer()函数查找,这样match对象带回来所有信息,而不仅是字符串。继续上一个例子假设,有一个作家想找出所有使用形容词,并且标记出这些形容词所在位置,他或她将使用什么样方式来完成这件工作呢?
例子:
text = "He was carefully disguised but captured quickly by police."
print(text)
for m in re.finditer(r"\w+ly", text):
print(‘%02d-%02d: %s‘ % (m.start(), m.end(), m.group(0)))
结果输出如下:
He was carefully disguised but captured quickly by police.
07-16: carefully
40-47: quickly
蔡军生 微信号:shenzhencai 深圳
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/caimouse/article/details/48391771