【问题标题】:How to add SGML end tags?如何添加 SGML 结束标签?
【发布时间】:2015-10-05 21:36:03
【问题描述】:

我有一个 SGML 文件,它看起来有很多 <p> 带有隐含结束标签的段落,如下所示:

<p>Here is one paragraph. 
<p>And here is another. This one contains <i>italics</i>.
<p>Finally, here is another paragraph.

这些段落没有结束标记。我想让它看起来像这样:

<p>Here is one paragraph.</p> 
<p>And here is another. This one contains <i>italics</i>.</p>
<p>Finally, here is another paragraph.</p>

有没有使用 OSS 工具的简单方法? (比如 vim、sed 等?)

【问题讨论】:

  • 什么都不做,看起来还是一样的
  • 好收获。复制粘贴错误。固定。

标签: vim sed sgml


【解决方案1】:

在 vim 中,根据您指定的输入,您可以使用 :%s/$/&lt;\/p&gt;/。 请注意,这仅适用于您的示例,其中每个段落都是一行。

如果是多行段落,首先连接所有行:%j,然后在开始标签:%s/ \+&lt;p&gt;/&lt;\/p&gt;&lt;p&gt;/前添加一个结束标签,然后添加最后一个结束标签:%s/$/&lt;\/p&gt;/。最后用gqap重排文本。

【讨论】:

    【解决方案2】:

    %s/&lt;p&gt;\zs\(.*\)/\1&lt;\/p&gt;/ 应该在 Vim 中工作,但“经典”解决方案是 %s/&lt;p&gt;/&lt;\/p&gt;&lt;p&gt;/,然后将第一个 &lt;/p&gt; 移动到文本末尾。

    【讨论】:

      猜你喜欢
      • 2018-02-21
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      • 1970-01-01
      • 2013-01-22
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      相关资源
      最近更新 更多