2016-07-30 24 views
0

我想使用的preg_match的preg_match動態文本和回聲

$desc = 'this is some text big <a href="//example.com/dynamicID">//example.com/dynamicID</a><br> and some more text here'; 

$desiredtext = preg_match("//example.com/.*?", $desiredtext, $desc); 

echo $desiredtext; //this should return me only //example.com/dynamicID 

如何解決這個問題,以得到一個字符串動態文本?

回答

1

嘗試以下方法:(!更新)

if(preg_match("/(?<=href=")([^"]*)/", $desc,$matches)) $desiredtext=$matches[1]; 

它採用了回顧後組搜索href="。然後捕獲組([^"]*)將抓取任何東西,直到下一個"。調整正則表達式以適應您的要求取決於您。

迴應您的評論:

延長第一檢索組()包括「example.com」,然後從matches[1]而不是matches[0]得到的結果:

preg_match('/(example.com[^&]*)/',$desc,$matches); 
$part = $matches[1]; 
echo $part; 
+0

感謝您的回覆,但問題是在文本中有多個href如何正確地找到我們需要的?有時在第二個href和第七個href的一些時候所需的文本。 – KenDev

+0

你的第二個和第三個參數是相反的,並且你在存儲1,0或者'FALSE',你想要存儲匹配 – sidyll

+0

你能準確地描述「我們需要什麼」嗎?你正在尋找一個特定的網址或死於它必須在特定的''? – cars10m