【问题标题】:Why is the PHP preg_match returning empty? [closed]为什么 PHP preg_match 返回空? [关闭]
【发布时间】:2013-04-12 21:01:38
【问题描述】:
// gets video ID from URL
$url = "http://vimeo.com/12345678";
preg_match("/vimeo.*\/(\d+)/i", $url, $vimeoID);
var_dump($vimeoID);

变量转储:

array(0) {
}

它可以工作 here 那么我错过了什么?

【问题讨论】:

  • 尝试使用单引号代替双引号,或者将每个反斜杠加倍。你运行的是什么版本的 PHP?

标签: php regex vimeo


【解决方案1】:

更具体地使用正则表达式以防止出现贪婪的表达式:

preg_match(":vimeo.\w{2,4}/(\d+):i", $url, $vimeoID);

【讨论】:

  • 贪婪不会阻止匹配;它会(可能)匹配得比预期的要多。
【解决方案2】:

对我来说按预期工作。我明白了..

array(2) {
 [0]=>
 string(18) "vimeo.com/12345678"
 [1]=>
 string(8) "12345678"
}

【讨论】:

    【解决方案3】:

    试试这个: preg_match("/vimeo\.com\/([0-9]{1,})/i", $url, $vimeoID);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-26
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 2014-04-21
      • 2020-08-03
      • 2014-09-25
      • 1970-01-01
      相关资源
      最近更新 更多