re模块帮助Python

时间:2012-01-24 19:30:29

标签: python regex

为什么这不起作用?我在< _sre.SRE_Match对象位于0x00B66A68>

import re

mess = open('mess.txt', 'r')
text = mess.read()

result = re.search('[a-z]+[A-Z{3}]+[a-z{1}]+[A-Z{3}]+[a-z]',text)

print result

2 个答案:

答案 0 :(得分:5)

search会返回相应的MatchObject个实例。

您需要将其添加到代码result.group(0)中。

例如:

>>> import re
>>> m = re.search('(?<=abc)def', 'abcdef')
>>> print m
<_sre.SRE_Match object at 0x018ECF70>
>>> m.group(0)
'def'

在这里查看Python regex tutorial with re module

答案 1 :(得分:0)

预先回答可能的下一个问题:

您的正则表达式'[a-z]+[A-Z{3}]+[a-z{1}]+[A-Z{3}]+[a-z]'可能无法达到您认为的目标

让我们看一下其中的一部分:

[A-Z{3}]匹配29种可能中的一个字符:('A', ..., 'Z', '{', '3', '}')

[A-Z]{3}正好匹配3个大写字母。

你想要哪个?

下一步:您希望[A-Z{3}]+做什么?