您好我在文件中找到一个包含以下符号和空格或换行符的字符串。 我想找到破损的标签
</answ
稍后替换它... xml文件如下所示:
”
通常我认为我可以通过
找到这个search = i.find('</answ ')
#or newline by:
vorkommen = i.find('</answ \n ')
但它返回-1 ......而那不是真的......
非常感谢您的帮助!
答案 0 :(得分:1)
您可以扩展您的空白字符集以包含标签,如下所示。
import re
search = re.search(r'</answ\s', i).start()
答案 1 :(得分:1)
为什么不使用xml解析器来查找错误?
etree.fromstring(u'<foo>text</fo\no>')
提升XMLSyntaxError: expected '>', line 2, column 1
,因此只要您将文字保留在某种流中,就可以操纵它来删除换行符,然后重新解析。
引发的异常设置position
属性以及代码属性。
或者,您可以配置lxml以使其更加健壮:
In [39]: parser = etree.XMLParser(recover=True)
In [40]: etree.fromstring(u'<foo>text</fo\no>', parser)
Out[40]: <Element foo at 0x55fd798>
请参阅:http://lxml.de/parsing.html以及http://lxml.de/api/index.html和http://lxml.de/api.html#error-handling-on-exceptions上的API参考