python怎么用正则表达式删除空行

软件和网站开发以及相关技术探讨
回复
ulosggs
帖子: 206
注册时间: 2009-03-25 13:17

python怎么用正则表达式删除空行

#1

帖子 ulosggs » 2012-12-07 20:26

没学过python,下面这个不管用,发现和sed的那一套不是一回事。

代码: 全选

content = re.sub(r'^\n', r'', content)
生命诚可贵
不因虚度年华而悔恨
Dropbox: http://db.tt/zYrxtyj
头像
Methuselar
帖子: 122
注册时间: 2009-06-04 12:06
联系:

Re: python怎么用正则表达式删除空行

#2

帖子 Methuselar » 2012-12-07 21:59

因为太简单,先给你来个没正则的

代码: 全选

python -c 'import sys; print "".join(line for line in sys.stdin if not len(line) == 0)'
非要正则可以自己发散... 我宁可subprocess sed awk也不碰正则...
Mea Culpa!
头像
jarlyyn
帖子: 4671
注册时间: 2006-04-12 18:54
联系:

Re: python怎么用正则表达式删除空行

#3

帖子 jarlyyn » 2012-12-09 0:21

ulosggs 写了:没学过python,下面这个不管用,发现和sed的那一套不是一回事。

代码: 全选

content = re.sub(r'^\n', r'', content)
^是字符串首吧?
如果你的换行是\n
按么应该是'\n([^\n]*\n)' 替换为''吧?
zlchina1989
帖子: 3
注册时间: 2011-07-04 15:25

Re: python怎么用正则表达式删除空行

#4

帖子 zlchina1989 » 2012-12-12 8:52

re.sub(r'\n{2,}', '\n', s)
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: python怎么用正则表达式删除空行

#5

帖子 eexpress » 2012-12-12 8:59

围观一堆不会正则的。
● 鸣学
ulosggs
帖子: 206
注册时间: 2009-03-25 13:17

Re: python怎么用正则表达式删除空行

#6

帖子 ulosggs » 2012-12-23 19:42

\n\n这样写是无法匹配首行和末行的空行的
生命诚可贵
不因虚度年华而悔恨
Dropbox: http://db.tt/zYrxtyj
头像
Fermat618
帖子: 728
注册时间: 2008-12-28 16:01

Re: python怎么用正则表达式删除空行

#7

帖子 Fermat618 » 2012-12-27 1:46

别用正则表达式了,用个普通的列表过滤就行了。
爱因斯坦会弹钢琴
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
头像
jarlyyn
帖子: 4671
注册时间: 2006-04-12 18:54
联系:

Re: python怎么用正则表达式删除空行

#8

帖子 jarlyyn » 2012-12-31 16:01

ulosggs 写了:\n\n这样写是无法匹配首行和末行的空行的
太迂了吧。
行首行尾巴先自己加上一个换行,处理完再去了…… :em05
头像
tooktang
帖子: 674
注册时间: 2010-07-15 18:30

回覆: python怎么用正则表达式删除空行

#9

帖子 tooktang » 2012-12-31 16:36

我也不会正则表达式。。。

從我使用 Tapatalk 2 的 Xperia S 發送
我是OS控…
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: python怎么用正则表达式删除空行

#10

帖子 lilydjwg » 2013-01-07 17:33

sed 是一行行处理的,Python 是个大字符串。

你这需求没必要用正则。非要用的话:
[python]
content = re.sub(r'^\n|\n+(?=\n)|\n$', r'', content)
[/python]
回复