preg_match гиперссылка - PullRequest
       2

preg_match гиперссылка

1 голос
/ 30 июня 2011

Я везде искал ответ, но, похоже, я не могу разобраться с preg_match функциональностью. Я хочу preg_match ссылку ниже, где только часть чисел (идентификатор) является динамической.

Ссылка:

http://video.cnbc.com/gallery/?video=3000024508

Вот то, что я придумал до сих пор:

preg_match( '/^http://video.cnbc.com/gallery/?video=([0-9_-]/', $content )

Но это не сработает.

Ответы [ 3 ]

3 голосов
/ 30 июня 2011
 preg_match('#^http://video\.cnbc\.com/gallery/\?video=([0-9_-]+)$#', $content);

RegExr Demo

Помимо проблем, упомянутых другими (экранирование ? и . и использование # вместо /), вы также пропускаете + после группы чисел ([0-9_-]), что означает эту группу можно повторить.

Если вам нужно проверить, содержит ли строка ссылку такого типа или нет, удалите ^ и $:

preg_match('#http://video\.cnbc\.com/gallery/\?video=([0-9_-]+)#', $content);

1 голос
/ 30 июня 2011

Что ж, после [0-9_-] вам не хватает близкого парня, и вы не сбежали должным образом.Используйте # вместо /, и вы получите это:

preg_match( '#^http://video\.cnbc\.com/gallery/\?video=([0-9_-]+)#', $content )
0 голосов
/ 30 июня 2011

Вы не избежали этого должным образом:

preg_match( '/^http:\/\/video.cnbc.com\/gallery\/\?video=([0-9_-])/', $content)

Вот символы проблемы:

  • / означает начало и конец регулярного выражения, вы заканчивали его послеhttp:
  • ? означает, что предыдущий символ является необязательным.

Вы также забыли закрывающую скобку.

...