0

我有一个 sgml 文件,比如

<p><p><data>sdlksdskdmskdmsamdakmdksam<p></data>...

我的问题是如何删除一个标签<p>并保持另一个标签完好无损......哪个正则表达式是合适的......

4

1 回答 1

1

如果您的 SGML 可以作为 XML 处理,那么XProc是一种很好的技术,只需一个步骤,例如:

<p:unwrap match="p[parent::p]"/>

(假设您要删除所有自嵌套的 p 元素,直到 p 永远不会包裹自己)。

您绝对不想使用正则表达式处理 SGML/XML,除非您 100% 确定您将处理具有某种明确指定的词汇形式的子集。例如,想想您如何使用正则表达式处理带有注释的内容:

<p><!-- <p> 被注释掉--><foo><p/><p/></foo></p>

!!

于 2011-05-23T09:43:20.267 回答