这个PHP正则表达式是什么意思?

这个PHP正则表达式是什么意思?,php,regex,ereg,Php,Regex,Ereg,我正在学习PHP正则表达式,我遇到了一些我很难理解的东西 本书给出了验证电子邮件地址的示例 if (ereg("^[^@]+@([a-z0-9\-]+\.)+[a-z]{2,4}$", $email)) 我不清楚这个表达式的几个元素 这意味着什么+@ [a-z0-9\-]+\中括号的用途是什么。? [^@]+@表示: 所以,它基本上是匹配第一个at符号之前的每个字符 [a-z0-9-]中括号的用途+。是创建一个,您应该能够在以后组捕获一定数量的文本后引用它 还请注意,ereg_*函数已被弃用,

我正在学习PHP正则表达式,我遇到了一些我很难理解的东西

本书给出了验证电子邮件地址的示例

if (ereg("^[^@]+@([a-z0-9\-]+\.)+[a-z]{2,4}$", $email))
我不清楚这个表达式的几个元素

这意味着什么+@ [a-z0-9\-]+\中括号的用途是什么。? [^@]+@表示:

所以,它基本上是匹配第一个at符号之前的每个字符

[a-z0-9-]中括号的用途+。是创建一个,您应该能够在以后组捕获一定数量的文本后引用它


还请注意,ereg_*函数已被弃用,您的书一定有点过时。现在,我们使用preg_*函数族。可以在中找到有关转换它们的教程。

试试这个教程:不要使用ereg,它已经贬值了,我想说你的书已经过时了。不要使用正则表达式验证电子邮件地址;使用过滤器仅供参考,这不是一个,这是一个。@Gordon-哈,你是对的,好先生。谢谢你指出这一点,我已经解决了。谢谢,是的,我注意到教程是用POSIX语法编写的,这会像你说的那样带来不推荐的错误。我使用PCRE,这是最新的。
[   - Match this group of characters
 ^@ - Anything that is NOT an at sign
]
+   - One or more times
@   - Match an at sign