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

使用正则表达式进行匹配

<?php

$subject = "my email is spark@imooc.com";

$p='/[\w\-]+@\w+\.\w+/';

preg_match($p,$subject,$matches);

echo $matches[0];

//在这里补充代码,实现正则匹配,并输出邮箱地址


为什么不会匹配到spark前面的字符?


正在回答

2 回答

正则表达式的匹配过程:根据正则表达式$p,

从$subject的第一个字符m开始匹配,my之后遇到空格不匹配;

从第二个字符y开始,之后遇到空格不匹配;

从第三个字符开始,空格不匹配;依次类推,从spark到结束,符合正则表达式$p,所以返回邮箱地址

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

那谁很靠谱3587144 提问者

非常感谢!
2017-04-25 回复 有任何疑惑可以回复我~
#2

慕慕2044423

为什么不能加上\s 把前面得字符串匹配上去?
2017-07-31 回复 有任何疑惑可以回复我~

\s是要匹配空白 ,\S才是匹配非空白

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

举报

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

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

进入课程

使用正则表达式进行匹配

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