帮助多行正则表达式匹配

rmi*_*sio -1 python regex xml

我试图让正则表达式匹配跨越多行的值.我正在使用re.S标志,但仍然没有结果.有什么想法吗?

这是我正在搜索的文字:

<File id="abc.txt" EngRev="74">
  <Identifier id="STRING_ID" isArray="1" goesWith="3027253">
    <EngTranslation>"Value 1","Value 2","Value 3","Value 4","Value 5",</EngTranslation>
    <LangTranslation filename="abc.txt" key="STRING_ID 0">Value 1</LangTranslation>
    <array filename="abc.txt" key="STRING_ID 1">Value 2</array>
    <array filename="abc.txt" key="STRING_ID 2">Value 3</array>
    <array filename="abc.txt" key="STRING_ID 3">Value 4</array>
    <array filename="abc.txt" key="STRING_ID 4">Value 5</array>
  </Identifier>
  <Identifier id="STRING_ID2" isArray="0" goesWith="3027253">
    <EngTranslation>"Value 1"</EngTranslation>
    <LangTranslation filename="abc.txt" key="STRING_ID2">Value 1</LangTranslation>
  </Identifier>
</File>
Run Code Online (Sandbox Code Playgroud)

这是我用来获取匹配的代码:

def updateToArray(matchobj):
     return matchobj.group(0).replace('LangTranslation','array')
outXML = re.sub(r'<Identifier.*?<array.*?</Identifier>', updateToArray, outXML, re.S)
Run Code Online (Sandbox Code Playgroud)

Man*_*dan 7

我强烈建议您不要使用正则表达式来解析XML.SO有很多 问题/答案线程解释为什么.比如看看这个经典.

既然你使用Python,为什么不使用像BeautifulSoupLxml这样的库来更干净,更简洁地完成这项工作呢?