Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 赛前解释_Php_Regex - Fatal编程技术网

Php 赛前解释

Php 赛前解释,php,regex,Php,Regex,我不确定这段代码要做什么,请帮助我理解: if(preg_match('#^.{1,5}@(gmail|yahoo|aol|hotmail|msn|ymail)#i',$email)) return false; 正则表达式尸检: #^.{1,5}@(gmail|yahoo|aol|hotmail|msn|ymail)#i #-这是分隔符-您需要在开头和结尾使用其中一个分隔符,而不必是#(它只需要在结尾匹配)。最常见的分隔符是正斜杠(/)(下面我将说明为什么i在那里) ^-正则表达式的

我不确定这段代码要做什么,请帮助我理解:

if(preg_match('#^.{1,5}@(gmail|yahoo|aol|hotmail|msn|ymail)#i',$email)) return false;

正则表达式尸检

#^.{1,5}@(gmail|yahoo|aol|hotmail|msn|ymail)#i
  • #
    -这是分隔符-您需要在开头和结尾使用其中一个分隔符,而不必是
    #
    (它只需要在结尾匹配)。最常见的分隔符是正斜杠(
    /
    )(下面我将说明为什么
    i
    在那里)
  • ^
    -正则表达式的下一部分必须与字符串开头匹配-前面不能有任何内容
  • {1,5}
    -任何字符(
    )匹配1到5次
  • @
    -文字
    @
    字符
  • (gmail | yahoo | aol | hotmail | msn | ymail)
    -文字字符串
    gmail
    yahoo
    aol
    hotmail
    msn
    ymail
  • #
    -结束分隔符
  • i
    -这是一个“区分大小写”的修饰符,这意味着我们还将匹配
    MSN
    /
    gMail
    /
    YAhoO
简言之,这不匹配:

myemail@gmail.com
(符号前面有6个字符)
foo@bar.com
(列出的域均不存在)

但是,它确实符合:

12345@gmail.dk

!“#·%@MSN.COM
是任何符号)
a@hotmail.de

foo@yahoo-email很烂。com
(因为我们不匹配“yahoo”后面的内容)


^在字符串开头断言位置
.{1,5}匹配任何字符(换行符除外) 量词:在1到5次之间,尽可能多的次数,根据需要回馈[贪婪]
@匹配字符@字面上
第一捕获群(gmail |雅虎| aol | hotmail | msn | ymail)
第一种选择:gmail
gmail按字面意思匹配gmail字符(不区分大小写) 第二种选择:雅虎
yahoo与yahoo字面上的字符匹配(不区分大小写) 第三种选择:aol
aol按字面意思匹配字符aol(不区分大小写) 第四种选择:hotmail
hotmail按字面意思与hotmail字符匹配(不区分大小写) 第五种选择:msn
msn按字面意思匹配字符msn(不区分大小写) 第六种选择:ymail
ymail按字面意思匹配字符ymail(不区分大小写)
i修饰符:不区分大小写。不区分大小写匹配(忽略[a-zA-Z]的大小写。)

回答不错:)Thanks@pollux1er您可能希望检查编辑以查看其匹配的内容-这可能会有所帮助:)@Downvote-为什么?这是完全正确的信息。