'/[\w\-]+@\w+\.\w+/'为什么不是'/[\w\s\-]+@\w+\.\w+/'??后者也匹配成功

来源:3-5 使用正则表达式进行匹配

苏乞儿儿

2016-11-28 23:49

\w匹配字母或者数字或者下划线,'/[\w\-]+.......'没有空格的匹配邮箱怎么还能匹配成功呢?

写回答 关注

1回答

  • ChenNick
    2016-11-29 08:58:04

    s也可以代表空的字符

    金泽城 回复苏乞儿儿

    $subject = "my email is spark@imooc.com"; $str = '/[\w\s\-]+@\w+\.\w+/'; preg_match($str, $subject, $match); echo $match[0]; 它的输出结果是:my email is spark@imooc.com,因为它符合在 @ 前面尽可能多的匹配字母和空格; 反之,如果你把 \s 去掉,才会得到:spark@imooc.com,因为它在 @ 前面不会匹配空格,所以从 spark 那里才算开始匹配上。

    2017-03-09 17:56:43

    共 6 条回复 >

PHP进阶篇

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

181720 学习 · 2575 问题

查看课程

相似问题