javascript - Word XML 中的正则表达式
问题描述
我有一个来自这种格式的 docx 的 xml:
<w:p w:rsidR="00AE2D8E" w:rsidRPr="00AE2D8E" w:rsidRDefault="00AE2D8E">
<w:pPr>
<w:rPr>
<w:lang w:val="en-US"/>
</w:rPr>
</w:pPr>
<w:r w:rsidRPr="00AE2D8E">
<w:rPr>
<w:lang w:val="en-US"/>
</w:rPr>
<w:t xml:space="preserve">Lorem ipsum dolor sit </w:t>
</w:r>
<w:proofErr w:type="spellStart"/>
<w:r w:rsidRPr="00AE2D8E">
<w:rPr>
<w:b/>
<w:lang w:val="en-US"/>
</w:rPr>
<w:t>amet</w:t>
</w:r>
<w:proofErr w:type="spellEnd"/>
<w:r w:rsidRPr="00AE2D8E">
<w:rPr>
<w:b/>
<w:lang w:val="en-US"/>
</w:rPr>
<w:t xml:space="preserve"> </w:t>
</w:r>
<w:proofErr w:type="spellStart"/>
<w:r w:rsidRPr="00AE2D8E">
<w:rPr>
<w:b/>
<w:lang w:val="en-US"/>
</w:rPr>
<w:t>consecteur</w:t>
</w:r>
<w:proofErr w:type="spellEnd"/>
<w:r w:rsidRPr="00AE2D8E">
<w:rPr>
<w:b/>
<w:lang w:val="en-US"/>
</w:rPr>
<w:t>.</w:t>
</w:r>
<w:bookmarkStart w:id="0" w:name="_GoBack"/>
<w:bookmarkEnd w:id="0"/>
</w:p>
docx 中写的是“Lorem ipsum dolor sit amet consecteur.”,但是由于来源、粗体等方面的差异,它最终中断了。
问题是我需要替换文本“Lorem ipsum dolor sit amet consecteur”。由任何其他人。
有谁知道如何通过正则表达式做到这一点?这是可能的?如果没有,还有什么其他可行的选择?
解决方案
您绝对不想尝试使用正则表达式解析 OOXML。
至少,您需要真正的 XML 解析器和工具,例如 XPath:
normalize-space(/w:p)
几乎会返回你想要的,
Lorem ipsum dolor sit amet consecteur .
推荐阅读
- php - Laravel Swagger 得到 [语法错误] 期望值,得到 '@'
- erlang - 为什么我在制作原子“乐队”时收到此语法错误?
- java - JaxbDto 序列化和反序列化
- visual-studio-code - 两个平台的 vscode 任务(避免复制和粘贴)
- c# - 插入和忽略重复
- python - 用 2 个字符串替换名词
- python - 训练批量大小 = 1 的可变长度序列时,Tensorflow Rank undefined Error
- python - TypeError 使用 chaquopy 调用 python 函数
- json - .NET JSON 序列化 - 空对象
- reactjs - 带有获取功能的打字稿类型