簡體   English   中英

從文本中提取特定的URL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM