分享

python 去除多个换行

 java_laq小馆 2014-05-05

python 去除多个换行

    今天就为了把一个字符串里的多个换行去掉,竟然忙活了一个下午,真是让大牛们笑话了。

    事出有因,一个字符串如下    

==========================

 

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


#1楼 2012-04-08 11:16 ^希望^  
呵呵,发现了一个比较好的办法:
1
'\n'.join(a.split())
  
#2楼[楼主] 2012-04-09 20:25 小五义  
@^希望^
高啊,呵呵,谢谢
  
#3楼 2012-05-21 15:49 up1m  
1
2
import re,os
print re.sub('('+os.linesep+'){2,}',os.linesep,a).strip()
  
#4楼[楼主] 2012-05-21 17:23 小五义  
@up1m
这都可以用正则啊,学习了。
  
#5楼 2013-11-01 11:00 麦田里的守望者  
re.sub(r'[\n]+',r'', input, flags=re.S)
  
#6楼 2013-11-01 11:04 麦田里的守望者  
re.sub(r'[\n]+',r'\n', input, flags=re.S)



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多