开发者

Regular expressions PHP preg_match_all

开发者 https://www.devze.com 2023-02-20 12:03 出处:网络
Hi I am trying to use preg_match_all() to extract the number in bold out of an image URL... http://profile.ak.fbcdn.net/hprofile-ak-snc4/174844_39677118233_8277870_t.jpg

Hi I am trying to use preg_match_all() to extract the number in bold out of an image URL...

http://profile.ak.fbcdn.net/hprofile-ak-snc4/174844_39677118233_8277870_t.jpg

Could someone please help me with the regular expression needed as I am stumped.

I've used this so far:

preg_match_all("(http://profile.ak.fbcdn.net/hprofile-ak-snc4/.*_t.jpg)siU", $this->html, $matching_data);
return $matching_data[0];
}

Which is just giving me an array of the full links.

Hope someone can help, tha开发者_运维知识库nks!!!


This will give you all occurrences:

$matches = preg_match_all ('!/hprofile-ak-snc4/[0-9]+_([0-9]+)[^/]+?\.jpg!i', $txt);
print_r ($matches);


Number you have bolded should be contained in $matches[$n][3]...

preg_match_all("#http://profile\.ak\.fbcdn\.net/(.*?)/([0-9]+)_([0-9]+)_([0-9]+)_t\.jpg#is", $string, $matches);
print_r($matches);


Try this:

([a-z][a-z0-9+\-.]*:(//[^/?#]+)?)?
([a-z0-9\-._~%!$&'()*+,;=:@/]*)
(?:(?:\d+_)(\d+)(?:_\d+))\3

I've separated it out onto multiple lines for easier reading. You will want to use capture group 4

Or (just minimized it a bit)

(?:[a-z][a-z0-9+\-.]*:(?://[^/?#]+)?)?
([a-z0-9\-._~%!$&'()*+,;=:@/]*)
(?:(?:\d+_)(\d+)(?:_\d+))\1

and use capture group 2

0

精彩评论

暂无评论...
验证码 换一张
取 消