我正在学习 PHP 正则表达式,但遇到了一些我无法理解的问题。
本书给出了验证电子邮件地址的示例。
if (ereg("^[^@]+@([a-z0-9\-]+\.)+[a-z]{2,4}$", $email))
我不清楚这个表达式的几个元素。
- 这是什么意思
[^@]+@
- 中括号的用途是什么
([a-z0-9\-]+\.)
?
[^@]+@
方法:
[ - Match this group of characters
^@ - Anything that is NOT an at sign
]
+ - One or more times
@ - Match an at sign
因此,它基本上匹配第一个 at 符号之前的每个字符。
括号中的目的([a-z0-9-]+.)
是创建一个捕获组,一旦该组捕获了一定数量的文本,您应该可以稍后引用它。
另请注意,ereg_*
不推荐使用函数,并且您的书必须有点过时。现在,我们使用preg_*
函数族。在这个 SO question中可以找到关于转换它们的教程。