使用正则表达式删除html标记

时间:2012-10-04 10:06:06

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

  

可能重复:
  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>

非常感谢:)

3 个答案:

答案 0 :(得分:0)

<?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;

答案 1 :(得分:0)

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

答案 2 :(得分:0)

preg_replace('#<o:p>(\s|&nbsp;)*</o:p>#', '', $text);