我正在尝试获取标签开头和另一个标签结尾的索引。但是,当我使用一个正则表达式时,它工作得很好,但对于两个正则表达式函数,它会为第二个函数提供错误。 请帮忙解释原因
下面的代码工作正常:
import re
f = open('C:/Users/Jyoti/Desktop/PythonPrograms/try.xml','r')
opentag = re.search('<TEXT>',f.read())
begin = opentag.start()+6
print begin
但是当我添加另一个类似的正则表达式时,它给了我错误
AttributeError: 'NoneType' object has no attribute 'start'
据我所知,这是由于 start() 函数返回 None
代码如下:
import re
f = open('C:/Users/Jyoti/Desktop/PythonPrograms/try.xml','r')
opentag = re.search('<TEXT>',f.read())
begin = opentag.start()+6
print begin
closetag = re.search('</TEXT>',f.read())
end = closetag.start() - 1
print end
请提供一个解决方案,告诉我如何让它工作。另外我是这里的新手所以如果我问更多关于解决方案的问题请不要介意。
请您参考如下方法:
您正在阅读 f.read() 中的文件它读取整个文件,因此文件描述符向前移动,这意味着当您下次执行 f.read() 时无法再次读取文本。
如果您需要再次搜索相同的文本,请保存 f.read() 的输出,然后对其进行正则表达式搜索,如下所示:
import re
f = open('C:/Users/Jyoti/Desktop/PythonPrograms/try.xml','r')
text = f.read()
opentag = re.search('<TEXT>',text)
begin = opentag.start()+6
print begin
closetag = re.search('</TEXT>',text)
end = closetag.start() - 1
print end
