python 里面如何排除匹配的行?

87 views
Skip to first unread message

holmes86

unread,
Oct 16, 2009, 5:23:26 AM10/16/09
to python-cn
请问各位,python的正则表达式里如何排除匹配的行?比如我要排除以#号开头的行,类似shell里面的grep -v ^#这种功能的,谢谢


--
知其然,不知其所以然! 



"雪见"杨幂邀你共品3D国韵网游《天下贰》,海报免费领

limodou

unread,
Oct 16, 2009, 5:25:11 AM10/16/09
to pyth...@googlegroups.com
2009/10/16 holmes86 <holm...@gmail.com>:

> 请问各位,python的正则表达式里如何排除匹配的行?比如我要排除以#号开头的行,类似shell里面的grep -v ^#这种功能的,谢谢
>

也是使用^


--
I like python!
UliPad <<The Python Editor>>: http://code.google.com/p/ulipad/
UliWeb <<simple web framework>>: http://uliwebproject.appspot.com
My Blog: http://hi.baidu.com/limodou

@@

unread,
Oct 16, 2009, 5:26:40 AM10/16/09
to pyth...@googlegroups.com
^[^#].*

2009/10/16 limodou <lim...@gmail.com>

holmes86

unread,
Oct 16, 2009, 5:31:47 AM10/16/09
to python-cn`CPyUG`华蟒用户组(中文Py用户组)
可是为什么我这样做却不能正常替换了?
>>> test = 'aaaaaaa\n#bbbbbbbbb\nccccccccc'
>>> print test
aaaaaaa
#bbbbbbbbb
ccccccccc

test.replace('^#.*$','')
'aaaaaaa\n#bbbbbbbbb\nccccccccc'


On Oct 16, 5:25 pm, limodou <limo...@gmail.com> wrote:
> 2009/10/16 holmes86 <holme...@gmail.com>:

limodou

unread,
Oct 16, 2009, 5:52:30 AM10/16/09
to pyth...@googlegroups.com
2009/10/16 holmes86 <holm...@gmail.com>:

> 可是为什么我这样做却不能正常替换了?
>>>> test = 'aaaaaaa\n#bbbbbbbbb\nccccccccc'
>>>> print test
> aaaaaaa
> #bbbbbbbbb
> ccccccccc
>
> test.replace('^#.*$','')
> 'aaaaaaa\n#bbbbbbbbb\nccccccccc'
>

字符串的replace不支持正则式,要使用使用re处理,如:

>>> test = = 'aaaaaaa\n#bbbbbbbbb\nccccccccc'
>>> import re
>>> r = re.compile('^#.*\n', re.M)
>>> r.sub('', test)
'aaaaaaa\nccccccccc'

jin yuguang

unread,
Oct 16, 2009, 5:54:59 AM10/16/09
to pyth...@googlegroups.com
最简单的方法,就是把没有匹配上的一行文字打印出来,匹配上的就不打印了!

@@

unread,
Oct 16, 2009, 6:00:32 AM10/16/09
to pyth...@googlegroups.com
哦 没看懂你的意思。。以为是#开头的就不满足
^#.*

2009/10/16 @@ <ask...@gmail.com>

holmes86

unread,
Oct 16, 2009, 6:10:30 AM10/16/09
to python-cn`CPyUG`华蟒用户组(中文Py用户组)
谢谢,开始我还以为调用某方法就能实现了,最后还是要用到了re

On Oct 16, 5:52 pm, limodou <limo...@gmail.com> wrote:
> 2009/10/16 holmes86 <holme...@gmail.com>:
>
Reply all
Reply to author
Forward
0 new messages