在php中使用正则表达式从页面中提取网址

时间:2013-08-07 02:48:42

标签: php regex

如何让regex从我与urls

的中心部分匹配的网页中提取url

例如我匹配的网址就像:

http://m2.imageserver.net/media/thumb/66177422433.jpg http://m4.imageserver.net/media/thumb/21717623342.jpg http://m1.imageserver.net/media/thumb/12327722433.jpg

我希望仅通过网址的imageserver.net/media部分进行匹配,因为子网域可能会发生变化。

3 个答案:

答案 0 :(得分:1)

你的正则表达式是http://[a-zA-Z0-9]+.imageserver.net+[a-zA-Z0-9/]+.jpg

建议:在尝试使用代码之前,请先使用regexpal进行检查。它基本上是一个javascript正则表达式测试器。

更新:添加分隔符:

$match_pattern = "#http:\/\/[a-zA-Z0-9]+.imageserver.net+[a-zA-Z0-9\/]+.jpg#";
preg_match_all($match_pattern,$string_to_be_matched,$url_array);

答案 1 :(得分:0)

我已经为你试了这个。也许它可以帮到你。

$text = "http://m2.imageserver.net/media/thumb/66177422433.jpg";

$text = preg_match("/imageserver.net\/media/", $text, $match);

print_r($match);

如果我完全理解你的问题,这可能就是答案。

答案 2 :(得分:0)

我没有使用正则表达式,但我认为这可能有用。

$string = "jjYy5nhttp://m2.imageserver.net/media/thumb/66177422433.jpgru56rtjr";

    $pattern = "/http:\/\/[^0-9a-zA-Z_ -].imageserver.net\/media\/(.*?).jpg/";
    if (@preg_match_all(${pattern}, ${string}, $matches) ) {
       print $matches['0'];
    }