从 Python 3.6.8 升级到 Python 3.9.0,执行单元测试后,发现 re.split() 的行为发生了显着的变化,但是查看相关的文档(Changelog和re)却没有发现有什么变化。
这种变化可以用单元测试,较为精确的表示 :
number = '123'
def test_Asterisk_quantifier_with_capture_group(self):
resultList = re.split(r'(\d*)', self.number)
if platform.python_version() == '3.6.8':
self.assertEqual(resultList,['', '123', ''])
else:
self.assertEqual(resultList,['', '123', '', '', ''])
感觉这明显不符合 split 文档中对功能的描述,还有个奇怪的现象是将*
换做+
后,行为仍与 3.6.8 相同。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.