【问题标题】:How to match 2 urls with one regex pattern如何将 2 个 url 与一个正则表达式模式匹配
【发布时间】:2011-11-04 01:57:43
【问题描述】:

我需要正则表达式模式的帮助来匹配 2 个网址?我目前拥有的代码与第一个 url 匹配,但我将如何制作一个模式来匹配两个 url。我正在尝试获取每个网址末尾的随机字符。

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);

【问题讨论】:

  • 我会制作一个单独的模式,检查它们并继续我的生活。
  • 这里已经问了很多 URL 正则表达式问题,你确定没有一个对你有用吗?

标签: php regex


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

【讨论】:

  • 你能帮我这个也@http://(?:www\.)(.*?)\.(?:com|net|es)/([a-zA-Z0-9]+)/@我要域名和com、net、es前缀后面的路径名
【解决方案2】:

应该这样做:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-02-27
      • 1970-01-01
      • 1970-01-01
      • 2019-03-07
      • 2019-11-28
      • 1970-01-01
      • 2019-07-21
      • 1970-01-01
      相关资源
      最近更新 更多