Python_47findall方法


1、应用范围

findall把匹配到的东西,都放到列表里边

print (re.findall("\d+\w\d+","a2d3d4r5st6y7u"))
输出结果为:['2d3', '4r5', '6y7']
print (re.findall("","a2d3d4r5st6y7u"))
输出结果为:['', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
testss='helloss alex bcd alex dd acd 19s'
r=re.search('a(\w+)',testss)
print (r.group())
输出结果为:alex

testss='helloss alex bcd alex dd acd 19s'

r=re.findall('a(\w+)',testss)
print (r)
输出为:['lex', 'lex', 'cd']
testss='helloss alex bcd alex dd acd 19s'
r=re.findall('(a)(\w+)',testss)
print (r)
输出结果为:[('a', 'lex'), ('a', 'lex'), ('a', 'cd')]
findall方法是没有字典的
testss='helloss alexe bcd alex dd acd 19s'
r=re.findall('(a)(\w+(e))(x)',testss)
print (r)
输出结果是:[('a', 'le', 'e', 'x'), ('a', 'le', 'e', 'x')]
testss='helloss alexe bcd alex dd acd 19s'
r=re.findall('(a)(\w+(e))(x)(?P<n1>x)',testss)
print (r)
输出结果是:[]
testss='helloss alexe bcd alex dd acd 19s'
r=re.finditer('(a)(\w+(e))(?P<n1>x)',testss)
print (r) #输出结果是可以被调用的迭代
for i in r:
print (i)#这个i就是和match到的结果是一样的 也有group。。。。。
输出结果是:

<callable_iterator object at 0x0000000001DE1358>
<_sre.SRE_Match object; span=(8, 12), match='alex'>
<_sre.SRE_Match object; span=(18, 22), match='alex'>

 
import re
a='alex'
n=re.findall('(\w)+',a)
print (n) #输出['x'] 带‘+’号贪婪匹配,取最后一个分组
n=re.findall('(\w+)',a)
print (n)#输出['alex']
n=re.findall('(\w)',a)
print (n)#输出['a', 'l', 'e', 'x']
n=re.findall('(\w)*',a)
print (n)#输出['x', '']
n=re.findall('(\d\w\w\w)','1qsx2wdc3edccee4rf5tgddd7uj')
print (n)#输出['1qsx', '2wdc', '3edc', '4rf5']
n=re.findall('(\d\w\w\w)*','1qsx2wdc3edccee4rf5tgddd7uj')
print (n)#输出['3edc', '', '', '', '4rf5', '', '', '', '', '', '', '', '', '']


匹配条件 加了()就是分组匹配的了

2、

 

 

 

 

 

 

 

 

 

 

 

 

 




免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM