【问题标题】:remove html tag using regex [duplicate]使用正则表达式删除html标签[重复]
【发布时间】:2012-10-04 10:06:06
【问题描述】:

可能重复:
PHP to clean-up pasted Microsoft input

你好帮助使用正则表达式或任何可以删除的 php 函数

<o:p></o:p> or <o:p>&nbsp;</o:p> or <o:p> </o:p> 

来自我的字符串

例子

<p class=MsoNormal>Category: Paul :asadad<o:p></o:p></p><p class=MsoNormal>Car: Toyota <o:p> </o:p></p><p class=MsoNormal>Sports: Soccer<o:p>&nbsp;</o:p></p>

我需要它

<p class=MsoNormal>Category: Paul :asadad</p><p class=MsoNormal>Car: Toyota 1</p><p class=MsoNormal>Sports: Soccer</p>

非常感谢:)

【问题讨论】:

  • 那么到目前为止你管理了什么正则表达式?
  • 如果你只是想删除元素,你可以使用str_replace。除此之外,还有很多答案展示了如何在 StackOverflow 上使用 XML 解析器删除元素,所以请搜索一下。
  • 嗯,您知道FCKEditor 清理脚本是否可以在不使用JS 的情况下由php 调用。我认为这对我有很大帮助

标签: php regex preg-replace preg-match-all


【解决方案1】:
<?php
   $str =  '<p class=MsoNormal>Category: Paul :asadad<o:p></o:p></p><p class=MsoNormal>Vessel Name: Vessel 1<o:p> </o:p></p><p class=MsoNormal>Sub Category: asdasdad<o:p>&nbsp;</o:p></p>';
   $pattern = '#(<o:p>\s*[\&nbsp;]*\s*<\/o:p>)#';
   $str = preg_replace($pattern, '', $str);
   echo $str;

【讨论】:

    【解决方案2】:

    如果您使用的是 PHP,为什么不直接使用 strip_tags() function?我会试一试,你甚至可以指定标签,你想留在文本中。有关详细信息,请参阅链接。

    【讨论】:

    • 谢谢,我会考虑使用strip_tags
    【解决方案3】:
    preg_replace('#<o:p>(\s|&nbsp;)*</o:p>#', '', $text);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-26
      • 2019-11-25
      • 2013-01-07
      • 2010-10-21
      • 1970-01-01
      • 2011-04-16
      相关资源
      最近更新 更多