什么';s的函数@";在PHP上的正则表达式中


What's the function of "@" in regular expressions on PHP?

我在PHP上看到了一些关于带有"@"的正则表达式的例子,比如:

preg_match ("@[a-zA-Z0-9]@i", $value, $occurrences);

我可以看到,这统计了在$value变量中找到的正则表达式的匹配数,但我想确定"@"是否用于这种特定情况,或者"@"在正则表达式中的主要函数是什么?。

你能帮我吗?

这些是正则表达式模式的自定义分隔符。最常见的是/,在您的情况下,它们被更改为@

自定义分隔符的好处与转义有关。这最好通过例子来说明。

考虑:

preg_match ("/Some'/Path/i", $value, $occurrences);

对比:

preg_match ("#Some/Path#i", $value, $occurrences);

然而,就我个人而言,我倾向于避免它们,因为它使正则表达式模式,嗯,自定义。只需使用标准的/分隔符。