php正则中的@是什么意思

<?php

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

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

var_dump($match);

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

2024-04-30 03:04:20

正则表达式
中的@符号是定界符,就是表示正则表达式的边界,与原来的/符号作用相同,这里不用/符号作为定界符是因为正则表达式中有/符号需要
转义符
转义,
用@作为定界符,正则表达式中的/符号,就不需要转义符转义了.如果你把两个@定界符都换成~作为定界符,效果是一样的.
追问
还能这样用,那岂不是所有特殊字符都能当做定界符了?还是说能替换的只有@和~?另外定界符能够替换的特性是只有php才有吗?
追答
php中不是所有的字符都可以做定界符,做定界符的我见过的还有#字符.
能够替换定界符的语言,我知道的目前只有php和perl语言(perl语言的定界符可以用字母m自行指定).