多行正则表达式匹配帮助

2024-09-27 21:24:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图让正则表达式匹配跨越多行的值。我正在使用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>

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

^{pr2}$

Tags: keytxtidstringvaluefilenamearrayfile
2条回答

我强烈建议您不要使用正则表达式来解析XML。所以有一个lotof问题/答案线程来解释原因。例如,请参见this classic。在

既然您正在使用Python,为什么不使用BeautifulSoup或{a5}这样的库来更简洁地完成这项工作呢?在

你缺少一个论点:

re.sub(pattern, repl, string[, count, flags])

这些标志似乎是整数,因此它将re.S作为count参数处理。对count使用零将保留默认行为,并允许您将标志作为第五个参数传递。在

相关问题 更多 >

    热门问题