python⾥使⽤正则表达式来分割字符串
在python⾥学习过使⽤str.split()来分割字符串,str.split不⽀持正则及多个切割符号,不感知空格的数量,⽐如⽤空格切割,会出现下⾯情况:
>>> s1="aa bb cc"
>>> s1.split(' ')
['aa', 'bb', '', 'cc']
这时,你也许会想到需要使⽤正则表达式的来进⾏查和分割了,把代码写成这样:
#python 3.6
#蔡军⽣
#blog.csdn/caimouse/article/details/51749579
菜鸟教程python函数#
import re
text = '''Paragraph one
on two lines.
Paragraph two.
Paragraph three.'''
for num, para in enumerate(re.findall(r'(.+?)\n{2,}',
text,
flags=re.DOTALL)
):
print(num, repr(para))
print()
结果输出如下:
0 'Paragraph one\non two lines.'
1 'Paragraph two.'
但是在这个例⼦⾥,发现最后⼀段是不能分割出来,怎么办呢?这时就需要使⽤re.split()来代替re.findall(),再来看例⼦:
#python 3.6
#蔡军⽣
#blog.csdn/caimouse/article/details/51749579
#
import re
text = '''Paragraph one
on two lines.
Paragraph two.
Paragraph three.'''
print('With findall:')
for num, para in enumerate(re.findall(r'(.+?)(\n{2,}|$)',
text,
flags=re.DOTALL)):
print(num, repr(para))
print()
print()
print('With split:')
for num, para in enumerate(re.split(r'\n{2,}', text)):
print(num, repr(para))
print()
结果输出如下:
With findall:
0 ('Paragraph one\non two lines.', '\n\n')
1 ('Paragraph two.', '\n\n\n')
2 ('Paragraph three.', '')
With split:
0 'Paragraph one\non two lines.'
1 'Paragraph two.'
2 'Paragraph three.'
在这⾥发现split函数的正则表达式⽐findall函数的简单很多。深⼊浅出Numpy
Python游戏开发⼊门
你也能动⼿修改C编译器
纸牌游戏开发
五⼦棋游戏开发
RPG游戏从⼊门到精通
WiX安装⼯具的使⽤
俄罗斯⽅块游戏开发
boost库⼊门基础
Arduino⼊门基础
Unity5.x游戏基础⼊门
TensorFlow API攻略
TensorFlow⼊门基本教程
C++标准模板库从⼊门到精通
跟⽼菜鸟学C++
跟⽼菜鸟学python
在VC2015⾥学会使⽤tinyxml库
在Windows下SVN的版本管理与实战Visual Studio 2015开发C++程序的基本使⽤在VC2015⾥使⽤protobuf协议
在VC2015⾥学会使⽤MySQL数据库
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论