0

我对为什么会发生这种情况感到有些困惑。这是简短的代码:

with open("file.xml") as xmlFile: # reading the xmlFile
    xmlLines=list()
    for line in xmlFile:
        newLine=xmlSearch.findall(line)
        print newLine

返回:(出于安全原因,我更改了实际输出)

[]
[]
[]
[]
[]
['TEXT_IN_STRING_FORMAT-SENSITIVE_DATA']
['TEXT_IN_STRING_FORMAT-SENSITIVE_DATA']
['TEXT_IN_STRING_FORMAT-SENSITIVE_DATA']
['TEXT_IN_STRING_FORMAT-SENSITIVE_DATA']
['TEXT_IN_STRING_FORMAT-SENSITIVE_DATA']
['TEXT_IN_STRING_FORMAT-SENSITIVE_DATA']
[]
[]
[]
[]
[]

但是,如果我使用 re.search 我会得到以下信息:

with open("file.xml") as xmlFile: # reading the xmlFile
    xmlLines=list()
    for line in xmlFile:
        newLine=re.search(r"\w/([\w\-]+)",line)
        print newLine

(出于安全原因,编辑输出以防万一)

None
None
None
None
None
<_sre.SRE_Match object at 0x000....SNIP>
<_sre.SRE_Match object at 0x000....SNIP>
<_sre.SRE_Match object at 0x000....SNIP>
<_sre.SRE_Match object at 0x000....SNIP>
<_sre.SRE_Match object at 0x000....SNIP>
<_sre.SRE_Match object at 0x000....SNIP>
None
None
None
None
None

知道为什么会这样吗?从我在 Python 文档和本网站上找到的示例中,re.search 也应该返回一个字符串。最后添加 .groups() 会导致以下错误:

AttributeError: 'NoneType' object has no attribute 'groups'

我正在使用 Python 2.7

4

1 回答 1

3

re.search返回一个MatchObjectNone- 请参阅re.search文档

re.findall返回字符串或元组的列表 - 请参阅re.findall文档

于 2013-11-11T23:41:12.027 回答