今天就为了把一个字符串里的多个换行去掉,竟然忙活了一个下午,真是让大牛们笑话了。
事出有因,一个字符串如下
==========================
XXX
手机:1XXXXXX
邮箱:
XXX@XXXX.com
Q Q:XXXXX
===========================
目的是要把其中的空行去掉,显得更加美观,最先想到用字符串,定义a为以上内容,用replace方法,可是由于不确定每行间有几个换行\n,所以也无法直接用\n替换。于是想到用正则表达式,但是试着写了几个办法,如re.sub('\n+','\n',a),但也没成功,没有一行替换成功,不知道为什么没有找到\n。直接被\n搞晕了,转义字符真是麻烦。
其实,正是因为要替换\n,所以可以用字符串splitlines()和strip()命令,取出每行形成列表,然后去掉列表前后的转义字符,此时所有文字会变成一行,因为在去掉转义字符后,再加上一个'\n'即可。具体代码都觉得没必要写了,竟然折腾了好一段时间,哎。
for tt in a.splitlines():
tt=tt.rstrip()+'\n'
pp=pp+tt