вопрос preg_match - PullRequest
       5

вопрос preg_match

1 голос
/ 19 апреля 2011

у меня есть это правило preg_match:

preg_match( '#(http:\/\/(www.)?imgur.com)\/(gallery\/)?(([-|~_0-9A-Za-z]+)&?.*?)#i', $link, $matches )

это совпадение для

http://imgur.com/xxxx
http://www.imgur.com/xxxx
http://imgur.com/gallery/xxxx

как мне избежать совпадения с imgur.com/a/xxxx#xxxx?

Ответы [ 2 ]

2 голосов
/ 19 апреля 2011

Я не уверен, что это то, что вы хотите:

preg_match( '#(http:\/\/(www.)?imgur.com)\/(?!a)(gallery\/)?(([-|~_0-9A-Za-z]+)&?.*?)#i', $link, $matches )

С этим URL, как http://imgur.com/a/xxxxxx не будет соответствовать.

PS: Хотя в зависимости от того, что вы делаетеЯ думаю, что регулярное выражение может стать излишне сложным, и вы должны попытаться найти более простые методы.Посмотрите на мой ответ здесь относительно парсинга URL: Будет ли регулярное выражение лучше для этой проблемы?

0 голосов
/ 19 апреля 2011

Вы можете обнаружить URL-адреса и затем передать их на parse_url(), где вы можете удалить их из своих совпадений, если они содержат этот путь.

Наверное, будет легче читать:)

...