2012-10-04 94 views
-1

可能重複:
PHP to clean-up pasted Microsoft input刪除使用HTML標記的正則表達式

使用正則表達式或任何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> 

感謝很多:)

+0

那麼到目前爲止你管理的是什麼正則表達式? –

+0

如果你只是想刪除元素,你可以使用'str_replace'。除此之外,還有很多答案顯示如何在StackOverflow上使用XML解析器移除元素,因此請給它一個搜索。 – Gordon

+0

檢查http://stackoverflow.com/search?q=is%3Aanswer+removeChild+[php]&submit=search – Gordon

回答

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

如果您使用的是PHP,你爲什麼不只是使用strip_tags() function?我會給它一個鏡頭,你甚至可以指定標籤,你想留在文本中。請參閱鏈接查看更多細節。

+0

謝謝,我會考慮使用strip_tags – redknight

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