删除拆分文本的MS Word XML标记

时间:2017-07-05 18:33:25

标签: python regex xml ms-word

我正在尝试使用python正则表达式编辑文本,该正则表达式源自其他人创建的MS Word文档。该文档具有需要保留的特定格式和方程式。我将.docx文件保存为.xml并使用python进行编辑。不幸的是,Word添加了XML标签,用我的正则表达式分隔单词和混乱。示例(这是Word输出的格式):

<rdf:Description rdf:about="http://ballads.bodleian.ox.ac.uk/id/sheetmanifestation/1"> <rdf:type rdf:resource="http://vocab.ox.ac.uk/balladspec#SheetManifestation"/> <ballads:exemplar rdf:resource="http://ballads.bodleian.ox.ac.uk/id/sheetitem/1"/> <!-- LITERAL VALUES --> <!-- number of ballads on sheet --> <ballads:numberBalladsOnSheet>1</ballads:numberBalladsOnSheet> <!-- identifier for the sheet manifestation --> <ballads:identifier>1</ballads:identifier> <ballads:identifier>UUID:d90706bc-a05a-46e2-a502-66365e1f63b2</ballads:identifier> <ballads:identifier>Allegro: b57054</ballads:identifier> <!-- EVENT --> <ballads:sheetManifestationCreated rdf:resource="http://ballads.bodleian.ox.ac.uk/id/event/74921d93-af22-4ad0-a782-c6d200dfd03e"/> <!-- ballad manifestation --> <ballads:sheetManifestationComposedOf rdf:resource="http://ballads.bodleian.ox.ac.uk/id/balladtextmanifestation/1"/> <!-- Imprint --> <ballads:sheetManifestationComposedOf rdf:resource="http://ballads.bodleian.ox.ac.uk/id/element/efeffc93-915b-48f9-9988-fc2820228251"/> </rdf:Description>

我试图用正则表达式删除标记,但收效甚微。任何帮助表示赞赏。

编辑:解决方案不必包含Python或正则表达式

1 个答案:

答案 0 :(得分:0)

这不是一个真正的正则表达式,但尝试使用大小:

s = """awe</w:t></w:r><w:r w:rsidRPr="00106B67"><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/><w:sz w:val="21"/><w:szCs w:val="21"/></w:rPr><w:t>some"""

answer = []
depth = 0
for char in s:
    if char == "<": depth += 1
    elif char == ">": depth -= 1

    if depth: continue
    if char == ">": continue

    answer.append(char)

print(''.join(answer))