2012-02-27 24 views
-2

如何使用正則表達式如何更換所有的HTML標籤中使用正則表達式

嘗試如下,但無法取代一個PHP字符串中的所有HTML標籤一個PHP字符串,

$r = "<h1>Hai</h1><br/><p>Hello world</p>"; 


$result = preg_replace('<(.*)>', '', $r); 



echo $result ; 

預期結果:

Hai Hello world剛剛在字符串格式

+3

你需要使用正則表達式嗎? PHP中有strip-tags函數:http://www.php.net/manual/en/function.strip-tags.php – 2012-02-27 08:38:37

+0

@MateuszMrozewski將它作爲答案發布。 – kapa 2012-02-27 08:40:14

+0

[必須閱讀](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags)。 – kapa 2012-02-27 08:41:31

回答

1

地方問號後.*

$r = "<h1>Hai</h1><br/><p>Hello world</p>"; 
$result = preg_replace('<(.*?)>', '', $r); 
echo $result ; 

.*是一個貪婪的正則表達式,將所有符合直到最後>字符。 .*?是懶惰,並會匹配,直到第一個>字符。

0

您的正則表達式失敗,因爲*是一個貪婪的操作符 - 它會消耗包括>字符在內的所有字符。請嘗試以下操作:

$result = preg_replace('<(.*?)>', '', $r); 

然而,正如@MateuszMrozewski指出,使用帶標籤的功能很可能是解決這個問題的最好辦法。

相關問題