为了账号安全,请及时绑定邮箱和手机立即绑定

正则运算问题

import re 

pa = re.compile(r'[a-z]*',re.I)

ma = pa.findall(r'abcefg125xyz777')

print ma

pa = re.compile(r'[a-z]+',re.I)

ma = pa.findall(r'abcefg125xyz777')

print ma


两次输出结果分别是:

# ['abcefg','','','','xyz','','','','']

# ['abcefg','xyz']

为什么第一种匹配会多出几个'',而且结尾会比中间的多一个‘’?是不是字符串结束还有一个结束符?


正在回答

2 回答

ma = pa.findall(r'')

In [67]: ma = pa.findall(r'')


In [68]: print ma

['']


In [69]: ma = pa.findall(r' ')


In [70]: print ma

['', '']


看上面应该能明白了吧

1 回复 有任何疑惑可以回复我~

*是可以0次的,‘’就代表找到0次

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python正则表达式
  • 参与学习       80575    人
  • 解答问题       174    个

如何使用正则处理文本,带你对python正则有个全面了解

进入课程

正则运算问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信