python 正则表达式--匹配对象和组

来源:互联网 发布:买书软件 编辑:程序博客网 时间:2024/06/10 11:12

所有的语言基本上都有这么强大的用法:正则表达式。python里面有这么一种匹配,叫匹配对象和组。

在python中,当能够找到匹配项的时候,他们都会返回MathObject对象,这些对象包括匹配模式的子字符串信息。他们还包含了哪个模式匹配了字符串的哪部分信息---这些部分就是组。

组就是放置在()内的子模式。组的序号取决于它左侧的括号数,组0就是整个模式。例如:

‘this is (my name (cogbee is) who am I) who maybe you (can now)’

组对应关系如下:

0:this is my name cogbee is who am I who maybe you can now

1:my name cogbee is who am I

2:cogbee is

3:can now


好了,介绍了这么多,那么有什么用呢?

用处挺大的。

比如,我们一个文件格式,就拿email报文格式来说,有一项:From:cogbee <cogbee@1345.com>

如果你想获取其中的用户名,该怎么办??

真则表达式啊。

'From:(.*)<.*?>$'

那么,group(1)就是括号内的内容,不就是我们的用户名吗??够简洁吧。

我们能够用的组最多99个。

贴一个树上的程序吧:供参考

import fileinput,repat = re.compile('From:(.*)<.*?>$')for line in fileinput.input():     m=pat.match(line)     if m:print m.group(1)



0 0