PHP正则表达式返回空数组

时间:2015-10-29 11:17:38

标签: php regex preg-match

问题: 我需要 u69ruczh 作为输出,从下面的代码

$string = '<a data-mce-href="{{file:u69ruczh}}" href="{{file:u69ruczh}}">pptexamples.ppt</a>';

生成输出:

数组([0] =&gt;数组())

我试过下面的代码:

$string = '<a data-mce-href="{{file:u69ruczh}}" href="{{file:u69ruczh}}">pptexamples.ppt</a>';
$url = preg_match_all('/href=[\{\{file:(.*?)\}\}]/', $string, $match);
print_r($match);

请帮助我哪里出错了

2 个答案:

答案 0 :(得分:1)

如果此格式是标准格式,此解决方案还应为您提供所需的输出:

$string = '<a data-mce-href="{{file:u69ruczh}}" href="{{file:u69ruczh}}">pptexamples.ppt</a>';
$arr = explode(":",$string);
$substr = $arr[1];
$subarr = explode("}",$substr);
$finalstr = $subarr[0];
echo $finalstr;
// Output: u69ruczh

答案 1 :(得分:1)

这可以使用以下正则表达式完成。

$url = preg_match_all('/file\:([a-zA-Z0-9]+)/', $string, $match);