【问题标题】:Remove html tag using regex with sed使用带有 sed 的正则表达式删除 html 标记
【发布时间】:2016-01-18 10:28:02
【问题描述】:

说,

我有一个由soffice --headless 命令生成的来自 Word (DOCX) 的 html 文件。然后我执行了tidy 命令,以便通过从 Word 中删除不必要的 html/css 化妆品来使 html 看起来干净。

我看到了类似的东西

<p lang="en-US" class="western c31"></p>

<p lang="en-US" class="western c31"></p>

<p lang="en-US" class="western c31"></p>

<p lang="en-US" class="western c31"></p>

<p lang="en-US" class="western c31"></p>

<p lang="en-US" class="western c31"></p>

<p lang="en-US" class="western c31"></p>

<p lang="en-US" class="western c31"></p>

<p lang="en-US" class="western c31"></p>

... repeated 15 times

我做了这些命令: sed -e 's/&lt;(.*?)&gt;&lt;\/(.?)&gt;//g' &gt; ./hasil.html sed -e 's/&lt;[a-z] lang="(.*) class="western (.*?)&gt;&lt;\/[a-z]&gt;//g' &gt; ./hasil.html

从 HTML 文件中删除 &lt;p lang="en-US" class="western c31"&gt;&lt;/p&gt; 无法正常工作。

我试过这个linkthis link,但也没有用。

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • @glenjackman 谢谢你提醒我。差点忘记了。真丢脸。
  • 不难过吗? 11 Questions with the phrase "remove html tags" in title and sed in content。没关系...从链接的问题中,我猜您收到了一些错误消息?如果是这样,请将其添加到您的问题中。
  • @try-catch-finally 我从来没有这样做过,之前你在 stackoverflow 上给我“高级搜索”。谢谢。下次我会在发布相同问题之前更好地搜索其他问题。

标签: regex ubuntu sed substitution


【解决方案1】:

所有 sed 的正则表达式都是寻找(最左边)最长的匹配。 Perl 和其他人可能支持.*? 的形式用于非贪婪的正则表达式,但 sed 不支持。

如果您想删除这些行,请尝试:

sed '\|<p lang="en-US" class="western c31"></p>|d' hasil.html

d 是 sed 的删除命令。

如果您想使用替代命令仅删除那些标签,留下任何其他(如果有的话)在线:

sed 's|<p lang="en-US" class="western c31"></p>||g' hasil.html

【讨论】:

  • 准确地说,POSIX 正则表达式找到最左边最长的匹配。 POSIX 正则表达式中没有“贪婪”或“懒惰”的概念,除了简单情况下的相似性。
  • @nhahtdh 请澄清。在正则表达式的上下文中,您对(a)“贪婪”和(b)“最左边最长匹配”有什么区别?
  • @John1024:“贪婪”的概念只存在于回溯引擎中的量词,其中量词的搜索顺序更喜欢重复而不是继续前进。带有贪婪量词的模式可能找不到最长的匹配项。另一方面,“最左最长匹配”描述了 POSIX 正则表达式的合约,其中正则表达式的所有可能性都必须用尽,并且只返回最长的匹配。
  • @nhahtdh 好的。有趣的。您能否提供一个与 sed 兼容的正则表达式示例,其中两个概念产生不同的结果?
  • 比较字符串sed -e 's/\(a\{5,7\}\)*/X/g'(a{5,7})* 上的aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
猜你喜欢
  • 2014-01-29
  • 1970-01-01
  • 1970-01-01
  • 2019-11-25
  • 1970-01-01
  • 1970-01-01
  • 2012-02-22
  • 2017-06-19
  • 1970-01-01
相关资源
最近更新 更多