[英]extract specific URLs from text
我想從此文本中提取URL:
<body>
<a href="http://domaine.com/t/text/text"> <img src="http://domaine.com/i/text/text"></a> <br>
<a href="http://domaine.com/text"></a> <br>
<a href="http://domaine.com"></a> <br>
<a href="http://domaine.com/text/text"></a> <br>
<a href="http://[GoTo]"></a> <br>
<a href="http://[NextURL]"></a> <br>
</body>
但是我想從提取中排除一些具有特定模式的URL; 這些模式是:
http://***/i/***/***
http://***/t/***/***
http://[GoTo]
http://[NextURL]
這意味着我將得到以下URL:
http://domaine.com/text
http://domaine.com
http://domaine.com/text/text
我到目前為止所做的是使用此正則表達式:
$regex = '/https?\:\/\/[^\" ]+/i';
preg_match_all($regex, $string, $matches);
print_r($matches[0]);
但您可以注意到,我提取了所有URL,但我不知道如何使用我的特定樣式排除其中的一些URL。
您正在尋找的是負面的前瞻:
$regex = '/https?:\/\/(?!\[GoTo\]|\[NextURL\]|[^\" ]*\/i\/[^\" ]+|[^\" ]*\/t\/[^\" ]*)[^\" ]+/i';
?! 在子匹配的開始處,應避免匹配帶有封閉模式的網址。 這可能需要針對特定的極端情況進行調整,但是由於存在上述問題,這應該可以為您提供所需的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.