问答详情
源自:3-5 使用正则表达式进行匹配

\w+\与[\w\-]+的区别?

<?php

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

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

$a= '/\w+\@\w+\.\w+/';

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

echo $matches[0];

//下面是原答案:

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

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

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

echo $matches[0];

这两种都可以得到邮箱的地址

那么请问

\w+\与[\w\-]+的区别以及在这里运用后者的好处?

提问者:烽烟 2018-05-18 23:58

个回答

  • 慕粉1466766877
    2018-05-19 13:21:33
    已采纳

    没有看出有什么好处,两者都不是精确匹配

    查了一下,在[]括号内,\-是指的-;-是指的-

    当$subject = "my email is s-park@imooc.com";

    使用$a= '/\w+\@\w+\.\w+/';返回park@imooc.com

    使用$pattern = '/[\w\-]+@\w+\.\w+/';返回s-park@imooc.com


    使用163非vip的情况下,不允许注册带-邮箱,网易邮箱要求6~18个字符,可使用字母、数字、下划线,需以字母开头

  • 柳源居士
    2018-12-27 23:56:59

    []可以用来表示范围、取反等操作。比如[0-9]表示0-9的数字,[^\s]表示一个非空白字符。

  • 慕粉3529918
    2018-09-06 23:49:16

    有时候用着  【  】   我也没有理解到,有的时候都没有加[   ]   有的时候加了[  ]