为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这样编译会出错呢

为什么这样不行

<?php
//请修改变量p的正则表达式,使他能够匹配str中的姓名
$p = '/\w+\s+\w+/';
$str = "name:steven jobs";
preg_match($p, $str, $match);
echo $match[1]; //结果为:steven jobs

这样却可以通过编译呢

<?php
//请修改变量p的正则表达式,使他能够匹配str中的姓名
$p = '/\w{6}\s{1}+\w{4}/';
$str = "name:steven jobs";
preg_match($p, $str, $match);
echo $match[0]; //结果为:steven jobs


正在回答

2 回答

同问这个问题,我也是搞不明白


0 回复 有任何疑惑可以回复我~

<?php

$p='/\w+\s+\w+/';

$str="name:steven jobs";

preg_match($p,$str,$match);

echo $match[0];

此数组只有一个数,只有$match[0],没有$match[1].

0 回复 有任何疑惑可以回复我~
#1

kenzo123 提问者

为什么只有一个数呢 别告诉我是输出栏那里match[1]没输出,这样并不能解决我的疑问,请告诉我原理 谢谢了
2016-01-07 回复 有任何疑惑可以回复我~
#2

jh352160 回复 kenzo123 提问者

因为符合\w+的部分有name,steven,jobs三个,但是之后符合\s+的就只有steven了,因为只有steven后面跟的是空格,再加上空格之后符合\w+的jobs部分,所以匹配表达式的部分只有steven jobs这一个值
2016-05-11 回复 有任何疑惑可以回复我~
#3

weibo_我要变得么么哒_03191471 回复 jh352160

不是很懂
2017-05-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
PHP进阶篇
  • 参与学习       181826    人
  • 解答问题       2577    个

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

进入课程

为什么这样编译会出错呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信