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