CDA人工智能学院致力于以优质的人工智能在线教育资源助力学员的DT职业梦想!课程内容涵盖数据分析、机器学习、深度学习、人工智能、TensorFlow、PyTorch、知识图谱等众多核心技术及行业案例,让每一个学员都可以在线灵活学习,快速掌握AI时代的前沿技术。PS:私信我即可获取《银牌会员》1个月免费试听机会
悄悄打入公司内部UED的一个Python爱好者小众群,前两天一位牛人发了条消息:
小的测试题:
re.split('(\W+)', ' test, test, test.')
返回什么结果
一开始看,我倒没注意W是大写的,以为是小写的w代表单词字符(含下划线),今天运行一看才发现是大写的。
在IDLE跑一下的结果如下:
>>> import re
>>> re.split('(\W+)', ' test, test, test.')
['', ' ', 'test', ', ', 'test', ', ', 'test', '.', '']
>>>
看到如上的输出,我是带有疑惑的,\W匹配非单词字符,那么结果里为什么有那么多非单词字符?
我都怀疑我对\W的含义是不是记错了,打开正则手册一看,确定我没记错之后,我发现了此例中匹配模式包含了括号,对应着正则里面的(pattern),
而这表示在匹配的同时会获取匹配,并保存到匹配结果集中。
恍然。
再测:
>>> re.split('(\W+)', ' test, test, test.')
['', ' ', 'test', ', ', 'test', ', ', 'test', '.', '']
>>> re.split('\W+', ' test, test, test.')
['', 'test', 'test', 'test', '']
>>>
关注“CDA人工智能学院”,回复“录播”获取更多人工智能精选直播视频!