1、findall函数返回字符串中所有匹配结果的正则表达式列表。
2、如果没有分组的正则是返回的正则匹配,分组返回的是分组匹配而非整个正则匹配。
实例
找到所有与pattern匹配的子串(不重叠),并将其放入列表。
1
2
3
4
|
import re
lst = re.findall( "[1-9]\d*" , "qw21313h1o58p4kjh8123jkh8435u" )
for x in lst:
print (x,end = " " )
|
#输出结果:21313 1 58 4 8123 8435
实例扩展:
python3中函数说明:
1
2
3
4
5
6
7
8
|
findall(pattern, string, flags = 0 )
Return a list of all non - overlapping matches in the string.
If one or more capturing groups are present in the pattern, return
a list of groups; this will be a list of tuples if the pattern
has more than one group.
Empty matches are included in the result.
|
两种形式的使用方法:
1
2
3
4
5
6
7
8
9
|
import re
kk = re. compile (r '\d+' )
kk.findall( 'one1two2three3four4' )
#[1,2,3,4]
#注意此处findall()的用法,可传两个参数;
kk = re. compile (r '\d+' )
re.findall(kk, "one123" )
#[1,2,3]
|
其中,含()时要注意:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import re
string = "abcdefg acbdgef abcdgfe cadbgfe"
#带括号与不带括号的区别
#不带括号
regex = re. compile ( "((\w+)\s+\w+)" )
print (regex.findall(string))
#输出:[('abcdefg acbdgef', 'abcdefg'), ('abcdgfe cadbgfe', 'abcdgfe')]
regex1 = re. compile ( "(\w+)\s+\w+" )
print (regex1.findall(string))
#输出:['abcdefg', 'abcdgfe']
regex2 = re. compile ( "\w+\s+\w+" )
print (regex2.findall(string))
#输出:['abcdefg acbdgef', 'abcdgfe cadbgfe']
|
到此这篇关于python中re.findall函数实例用法的文章就介绍到这了,更多相关python中re.findall函数的介绍内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.py.cn/jishu/jichu/33358.html