如何匹配2个网址与一个正则表达式模式

时间:2011-11-03 17:53:51

标签: php regex

我需要一个正则表达式模式的帮助才能匹配2个网址?我目前的代码与第一个网址匹配,但我如何制作一个匹配两个网址的模式。我试图在每个网址的最后获取随机字符。

http://www.videozer.com/video/yKKd

http://www.videozer.com/watch_video.php?v=rbgsd

preg_match('/http\:\/\/((www\.)?)videozer\.com\/video\/([a-zA-Z0-9]+)/', $URL, $result);

3 个答案:

答案 0 :(得分:3)

preg_match('@http://(?:www\.)?videozer\.com/(?:video/|watch_video\.php\?v=)([a-zA-Z0-9]+)@', $URL, $result);
  1. 使用(abc|def)匹配字符串'abc'或'def'
  2. 使用不同的分隔符,这样您就不必转义/

答案 1 :(得分:1)

这应该这样做:

preg_match('/http\:\/\/((www\.)?)videozer\.com\/(video\/|watch_video\.php\?v=)([a-zA-Z0-9]+)/', $URL, $result);

答案 2 :(得分:0)

您只需使用匹配的组。 You can see the result here

preg_match('/http\:\/\/((www\.)?)videozer\.com\/(video\/|watch_video\.php\?v=)([a-zA-Z0-9]+)/', $URL, $result);