2016-12-03 16 views
0

私はウェブサイトから特定のリンクを抽出したいと思います。特定のリンクをウェブサイトから抽出する

リンクは、そのようになります。

/topic/Funny/G1pdeJm 

リンクは常に同じです - 最後のランダムな文字を除いて。

私は、これらの部品

(preg_match("/^http:\/\//i",$str) || is_file($str)) 

(preg_match("/Funny(.*)/", $str) || is_file($str)) 

最初のコードの抽出物のみ/トピック/おかしい/ *一部のリンクからのすべてのリンク 第2の抽出物を組み合わせるのに苦労しそうです。

不幸また、私はまた、これらのタグをブロックしたい、それらを組み合わせることはできません。

/topic/Funny/viral 
/topic/Funny/time 
/topic/Funny/top 
/topic/Funny/top/week 
/topic/Funny/top/month 
/topic/Funny/top/year 
/topic/Funny/top/all 

任意のアイデア?

おかげで、チム

答えて

1

あなたはURLの「フィルタリング」するために、負の先読みを使用して試みることができるあなたは好きではない:

.*\/Funny\/(?!viral|time|top\/week|top\/month|top\/year|top\/all|top(\n|$)).* 

demo here

+0

を、私はあなたが置くならば、それは素晴らしいことだろうと思いますこれは 'preg_match'の中にありますので、OPはこの正規表現の使い方を理解しています:) – Dekel

+0

正直言って私はPHPの人ではなく正規表現の男です、あるいは私はそれをします:) – sweaver2112

+0

thx a ton!この正規表現は完璧と思われます:)しかし残念ながら、@Dekelは私がスクリプトで動作するようにはできないと言っています: – chim

関連する問題