2010-02-20 115 views
1

提取鏈接文本我想在下面的一行字細辛:正則表達式來從錨標記

<A HREF="http://www.getty.edu/vow/TGNFullDisplay?find=&place=&nation=&english=Y&subjectid=1062783">Asarum</A> 

我試着用:

preg_replace('/<a.*?>/i', '', $link); 
preg_replace('/<\/a>/i', '', $link); 
echo $link; 

,但它不工作。沒有任何東西被切斷。

有人可以幫助我嗎?

回答

1

您需要分配結果:

$link = preg_replace('/<a.*?>/i', '', $link); 
$link = preg_replace('/<\/a>/i', '', $link); 
echo $link; 
+0

奇怪。我從來沒有這樣做過,它似乎工作......也許我錯了。 – ajsie 2010-02-20 09:43:51

2

使用此代碼,以文本匹配,而不是取代其他一切到一個特定的正則表達式,:

preg_match('/<a.*?>(.+?)<\/a>/i', $link, $matches); 

$matches[1]現在將包含文本您正在尋找。

3

最快的(可能是 - 未測試):

$t = substr($link, strpos($link, '>') + 1, -4); 

最清楚:

$t = strip_tags($link); 

基本帶標籤W /正則表達式:

$t = preg_replace('/<[^>]*>/', '', $link); 
+0

簡潔,可靠。 +1 – Jakob 2010-02-20 23:53:13

+0

美麗的解決方案=) – ajsie 2010-02-21 00:32:36

+0

我應該注意到,這隻適用於你給出的字符串只包含單個HTML元素。如果您試圖從HTML的較大片段中選取錨點元素,那麼您需要DouweM的解決方案。 – 2010-02-21 04:13:44