【发布时间】:2013-05-23 18:30:55
【问题描述】:
使用 vim,我试图删除 <text> 块的 outside 的所有文本。这需要跨越换行符和其他(不相关的)标签。
我尝试使用正则表达式来替换换行符的文本,但由于几个原因失败了,其中一个是我的尝试没有跨越多行,我需要让我的匹配项不贪心。 (这是使用{-} 以某种方式完成的吗?)
应该匹配我要删除的内容的正则表达式看起来像:<//text>.*<text.*> 但如果我使这个匹配不贪婪,我可能会有其他问题。 (我也意识到我会在开始时清理一个部分标签部分。)
我应该采取另一种方法吗,或者有人可以指导我使用 vim 删除此类标签之间的所有内容 not?
编辑:包括示例文本
<contributor>
<username>MalafayaBot</username>
<id>628</id>
</contributor>
<minor />
<comment>Robô: A modificar Categoria:Vocábulo de étimo latino (Português) para Categoria:Entrada de étimo latino (Português)</comment>
<text xml:space="preserve">={{-pt-}}=
==Substantivo==
{{flex.pt|ms=excerto|mp=excertos}}
{{paroxítona|ex|cer|to}} {{m}}
# [[extrato]] de um [[texto]], [[fragmento]]
#: ''A seguir, um '''excerto''' do texto original.''
===Tradução===
{{tradini}}
* {{trad|es|extracto}}
* {{trad|fr|extrait}}
{{tradmeio}}
* {{trad|en|excerpt}}
{{tradfim}}
=={{etimologia|pt}}==
:Do latim ''[[excerptu]]'' (colhido de).
=={{pronúncia|pt}}==
===Brasil===
* [[SAMPA]]: /e."sEx.tu/
* [[AFI]]: /esˈertu/
[[zh:excerto]]</text>
<sha1>8i1zywj37s74ah4wnai11ohorfjn8j5</sha1>
<model>wikitext</model>
【问题讨论】:
-
请举个例子
-
您的文件中是否只有一个
<text>块? -
regex 确实不是最好的工具。这可能是一个有趣的阅读,为什么它不适合解析 html。 stackoverflow.com/questions/1732348/…
-
@Fdinoff 我在尝试解决了几个小时后才意识到这一点。我真的不需要 DOM 的全部功能,但看起来我需要一个不同的工具来解决这个问题。