为什么preg_Match()在返回的数组的索引1(而不是0)处返回第一个匹配?
我正在使用卷曲功能的小型网站刮板。
我决定使用preg_match查找页眉和文章内容。
这是我的代码:
preg_match('@<h2 class="title">(.*?)</h2>@s', $this->website, $this->title);
if(sizeof($this->title) > 1)
$this->title = trim($this->title[1]); // rewrite first element of array to regular variable
我正在试验它,我发现如果有一个匹配项,它会在索引1处的数组中返回它,而不是0。
编辑后的问题:为什么这是1,而不是0?我做错了什么吗?我的服务器:Apache/2.4.3(Win32)PHP/5.4.7
解决方案
PREG_MATCH的默认行为是返回结果数组中索引0处匹配的整个字符串,然后返回后续结果数组索引中匹配的每个子模式。如果没有匹配,则结果数组为空。如果有匹配项,您将获得匹配的完整字符串,然后是所有子模式。
相关文章