我正在学习PHP正则表达式,而且我遇到了一些我无法理解的问题.
本书以验证电子邮件地址为例.
if (ereg("^[^@]+@([a-z0-9\-]+\.)+[a-z]{2,4}$", $email))
Run Code Online (Sandbox Code Playgroud)
我不清楚这个表达的几个元素.
[^@]+@([a-z0-9\-]+\.)?[^@]+@ 手段:
[ - Match this group of characters
^@ - Anything that is NOT an at sign
]
+ - One or more times
@ - Match an at sign
Run Code Online (Sandbox Code Playgroud)
因此,它基本上匹配第一个符号前的每个字符.
括号的目的([a-z0-9-]+.)是创建一个捕获组,一旦组捕获了一些文本,您应该可以在以后引用它.
另请注意,ereg_*函数已弃用,您的图书必须有点过时.如今,我们使用preg_*功能族.有关转换它们的教程可以在这个SO问题中找到.