我有一个像
这样的sgml文件<p><p><data>sdlksdskdmskdmsamdakmdksam<p></data>...
我的问题是如何删除一个标记<p>
并保持另一个标记完整...哪个正则表达式可以变换......
答案 0 :(得分:1)
如果您的SGML是这样的,它可以作为XML处理,那么XProc是一种很好的技术,只需一步,如:
<p:unwrap match="p[parent::p]"/>
(假设您要删除所有自嵌套的p元素,直到p永远不会自行包装)。
你肯定不希望用regexp处理SGML / XML,除非你100%确定你将处理具有某种明确的词汇形式的子集。例如,考虑如何使用正则表达式处理带有注释的内容:
<p><!-- <p> commented out--><foo><p/><p/></foo></p>
!!