Python 正则表达式学习记录1-findall的用法

学习目标:使用Python正则表达式的findall方法

        在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果有多个匹配模式,则返回元组列表,如果没有找到匹配的,则返回空列表。
        match 和 search 是匹配一次 findall 匹配所有。

find=re.findall(pattern,string)
pattern:正则表达式
string:搜索的字符串
:如果有括号,则括号里匹配的结果算放在一个元组中


例1:
正则表达式本身代表了多个正则表达式,这个正则表达式的匹配结果放在一个元组中

st='''   variables=iter,<i>C</i><sub>A</sub>, 
                  <i>C</i><sub>N</sub>, 
                  <i>C</i><sub>Z</sub>, 
                  <i>C</i><sub>ml</sub>,
                  <i>C</i><sub>mn</sub>,
                  <i>C</i><sub>m</sub>, 
                  <i>C</i><sub>L</sub>, 
                  <i>C</i><sub>D</sub>, 
                  <i>K</i>, 
                  <i>CP</i><sub>x</sub>,
                  <i>CP</i><sub>y</sub>,
                   CPUTime(s)           
10      100     200
'''
find=re.findall('variables=(\s*\D+,)+(\D+)\n',st)
print(find)
# [('iter,<i>C</i><sub>A</sub>, \n                  <i>C</i><sub>N</sub>, \n                  <i>C</i><sub>Z</sub>, \n                  <i>C</i><sub>ml</sub>,\n                  <i>C</i><sub>mn</sub>,\n                  <i>C</i><sub>m</sub>, \n                  <i>C</i><sub>L</sub>, \n                  <i>C</i><sub>D</sub>, \n                  <i>K</i>, \n                  <i>CP</i><sub>x</sub>,\n                  <i>CP</i><sub>y</sub>,', '\n                   CPUTime(s)           ')]


例2:
正则表达式实际仅为一个表达式可以表示多个字符,这个正则表达式的匹配结果在列表中


st='''   variables=iter,<i>C</i><sub>A</sub>, 
                  <i>C</i><sub>N</sub>, 
                  <i>C</i><sub>Z</sub>, 
                  <i>C</i><sub>ml</sub>,
                  <i>C</i><sub>mn</sub>,
                  <i>C</i><sub>m</sub>, 
                  <i>C</i><sub>L</sub>, 
                  <i>C</i><sub>D</sub>, 
                  <i>K</i>, 
                  <i>CP</i><sub>x</sub>,
                  <i>CP</i><sub>y</sub>,
                   CPUTime(s)           
10      100     200
'''

find =re.findall('(\s*\D+),',st)
print(find)
# ['   variables=iter,<i>C</i><sub>A</sub>, \n                  <i>C</i><sub>N</sub>, \n                  <i>C</i><sub>Z</sub>, \n                  <i>C</i><sub>ml</sub>,\n                  <i>C</i><sub>mn</sub>,\n                  <i>C</i><sub>m</sub>, \n                  <i>C</i><sub>L</sub>, \n                  <i>C</i><sub>D</sub>, \n                  <i>K</i>, \n                  <i>CP</i><sub>x</sub>,\n                  <i>CP</i><sub>y</sub>']
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值