我们以字符串
s='abc 123def456ABC$#'
为例,演示如下几个
findall
函数的使用案例:
寻找指定某种组成方式的序列
寻找字符串中的所有小写字母序列
import re
s='abc123def456ABC'
r=re.findall('[a-z]{1,}',s)
print(type(r))
print(r)
结果
<class 'list'>
['abc', 'def']
寻找字符串中的所有大写字母序列
import re
s='abc 123def456ABC$#'
r=re.findall('[A-Z]{1,}',s)
print(r)
结果
['ABC']
寻找字符串中的所有字母序列
import re
s='abc 123def456ABC$#'
r=re.findall('[a-zA-Z]{1,}',s)
print(r)
结果
['abc', 'def', 'ABC']
寻找字符串中的所有长度为2到5的字母/特殊字符组成的序列
import re
s='abc 123def456ABC$#'
r=re.findall('[a-zA-Z\W]{2,5}',s)
print(r)
结果
['abc ', 'def', 'ABC$#']
寻找字符串中的所有2位字母+3位数字组成的序列
import re
s='abc 123def456ABC$#'
r=re.findall('[a-zA-Z]{2}[\d]{2}',s)
print(r)
结果
['ef45']
寻找指定开头结尾中间的序列
寻找字符串中的所有以ab开头23结尾的序列
import re
s='abc 123def456ABC$#'
r=re.findall('[ab]{1,}.*[23]{1,}',s)
print(r)
结果
['abc 123']
寻找字符串中的所有以字母开头数字结尾的序列
import re
s='abc 123def456ABC$#'
r=re.findall('[\[a-zA-Z]{1,}.*\d{1,}',s)
print(r)
结果
['abc 123def456']
寻找字符串中的所有以字母开头字母结尾,中间为数字的序列
import re
s='abc 123def456ABC$#'
r=re.findall('[a-zA-Z][\d]{1,}[a-zA-Z]',s)
print(r)
结果
['f456A']
寻找字符串中的所有以字母开头字母结尾,中间长度为2-4的序列
import re
s='abc 123def456ABC$#'
r=re.findall('[a-zA-Z].{2,5}[a-zA-Z]',s)
print(r)
结果
['c 123d', 'ef456AB']
寻找字符串中的所有以ab开头23结尾,或de开头45结尾的序列
import re
s='abc 123def456ABC$#'
r=re.findall('[ab]{1,}.*[23]{1,}|[de]{1,}.*[45]{1,}',s)
print(r)
结果
['abc 123', 'def45']
说明:Python默认贪婪模式