沃梦达 / 编程问答 / php问题 / 正文

为什么preg_Match()在返回的数组的索引1(而不是0)处返回第一个匹配?

Why preg_match() returns first match at index 1 (not 0) of returned array?(为什么preg_Match()在返回的数组的索引1(而不是0)处返回第一个匹配?)

本文介绍了为什么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处匹配的整个字符串,然后返回后续结果数组索引中匹配的每个子模式。如果没有匹配,则结果数组为空。如果有匹配项,您将获得匹配的完整字符串,然后是所有子模式。

这篇关于为什么preg_Match()在返回的数组的索引1(而不是0)处返回第一个匹配?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:为什么preg_Match()在返回的数组的索引1(而不是0)处返回第一个匹配?

基础教程推荐