<?php $s = '/*aaaasss*/*/'; preg_match('@/\*.*?\*/@s', $s, $match); var_dump($match);上面代码中的@是什么意思?看他放的位置在正则表达式外面。另外@也不是元字符
正则表达式中的@符号是定界符,就是表示正则表达式的边界,与原来的/符号作用相同,这里不用/符号作为定界符是因为正则表达式中有/符号需要转义符转义,用@作为定界符,正则表达式中的/符号,就不需要转义符转义了.如果你把两个@定界符都换成~作为定界符,效果是一样的. 追问 还能这样用,那岂不是所有特殊字符都能当做定界符了?还是说能替换的只有@和~?另外定界符能够替换的特性是只有php才有吗? 追答 php中不是所有的字符都可以做定界符,做定界符的我见过的还有#字符.能够替换定界符的语言,我知道的目前只有php和perl语言(perl语言的定界符可以用字母m自行指定).