python中re.findall函数实例用法

1、findall函数返回字符串中所有匹配结果的正则表达式列表。

2、如果没有分组的正则是返回的正则匹配,分组返回的是分组匹配而非整个正则匹配。

实例

找到所有与pattern匹配的子串(不重叠),并将其放入列表。

import re
lst = re.findall(\"[1-9]\\d*\",\"qw21313h1o58p4kjh8123jkh8435u\")
for x in lst:
    print(x,end=\" \")

#输出结果:21313 1 58 4 8123 8435

实例扩展:

python3中函数说明:

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.

两种形式的使用方法:

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]

其中,含()时要注意:

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\']

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容