_Day_Day_Up_
2016-02-18 16:12
$p = '/name:([\w\s]+)/';
$str = "name:steven jobs";
preg_match($p, $str, $match);
echo $match[1]; //结果为:steven jobs
$p = '/\w{4}\:\w{6}\s\w{4}/';
为什么 name :可以直接放上去呢?你看最后一行是我没看答案时写的。。。。。
还有就是最后echo $match[0]
$match[1] 这种是什么意思?
name:直接写上去是表示所匹配的必须含有name:这个字符串,后面接上正则([\w\s]+)
至于$match[]是一个数组,用来存储匹配成功的字符串,例如$match[0]所存储的就是整个正则表达式所匹配成功的字符串,而 $match[1]表示第一个括号子模式所匹配的字符串即([\w\s]+),$match[2]则表示第二个括号子模式所匹配的字符串
你写的那个就和题意有所不一致了......题目可能要求前面必须是有name: 你的正则的话abcd:steven jobs";这是可以过得,具体还看题意,可能理解不到位吧
说得不好望指正
对的,不然元字符本身有其他意义,加上\表转义,就把元字符当成文本了
PHP进阶篇
181843 学习 · 2577 问题
相似问题