Регулярные выражения PHP preg_match_all - PullRequest
1 голос
/ 28 марта 2011

Привет, я пытаюсь использовать preg_match_all (), чтобы извлечь число, выделенное жирным шрифтом из URL-адреса изображения ...

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

Может кто-нибудь помочь мне с регулярным выражениемнужно, потому что я в замешательстве.

Я уже использовал это:

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

Что просто дает мне массив полных ссылок.

Надеюсь, кто-то можетпомогите, спасибо !!!

Ответы [ 3 ]

1 голос
/ 28 марта 2011

Это даст вам все вхождения:

$matches = preg_match_all ('!/hprofile-ak-snc4/[0-9]+_([0-9]+)[^/]+?\.jpg!i', $txt);
print_r ($matches);
1 голос
/ 28 марта 2011

Номер, который вы набрали, должен содержаться в $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);
0 голосов
/ 28 марта 2011

Попробуйте:

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

Я разбил его на несколько строк для удобства чтения.Вы захотите использовать группу захвата 4

или (просто немного ее свернуть)

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

и использовать группу захвата 2

...