-4

我正在学习 PHP 正则表达式,但遇到了一些我无法理解的问题。

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

if (ereg("^[^@]+@([a-z0-9\-]+\.)+[a-z]{2,4}$", $email))

我不清楚这个表达式的几个元素。

  1. 这是什么意思[^@]+@
  2. 中括号的用途是什么([a-z0-9\-]+\.)
4

1 回答 1

6

[^@]+@方法:

[   - 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中可以找到关于转换它们的教程。

于 2012-08-06T19:46:59.800 回答