php正则中的@是什么意思

<?php

$s = '/*aaaa
sss
*/*/';

preg_match('@/\*.*?\*/@s', $s, $match);

var_dump($match);

上面代码中的@是什么意思?看他放的位置在正则表达式外面。另外@也不是元字符

正则表达式中的@符号是定界符,就是表示正则表达式的边界,与原来的/符号作用相同,这里不用/符号作为定界符是因为正则表达式中有/符号需要转义符转义,
用@作为定界符,正则表达式中的/符号,就不需要转义符转义了.如果你把两个@定界符都换成~作为定界符,效果是一样的.追问

还能这样用,那岂不是所有特殊字符都能当做定界符了?还是说能替换的只有@和~?另外定界符能够替换的特性是只有php才有吗?

追答

php中不是所有的字符都可以做定界符,做定界符的我见过的还有#字符.
能够替换定界符的语言,我知道的目前只有php和perl语言(perl语言的定界符可以用字母m自行指定).

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网