请注意,括号样式的开括号和闭括号分隔符并非 100% 无问题的解决方案,因为它们需要在表达式中不匹配的情况下进行转义。这种不匹配可能会发生在它们出现在字符类 [... ] 中时,因为大多数元字符会失去其特殊含义。请考虑以下示例
<?php
preg_match('{[{]}', ''); // 警告:preg_match(): 没有匹配的结束分隔符 '}'
preg_match('{[}]}', ''); // 警告:preg_match(): 未知修饰符 ']'
preg_match('{[}{]}', ''); // 警告:preg_match(): 未知修饰符 ']'
?>
转义它们可以解决问题
<?php
preg_match('{[\{]}', ''); // OK
preg_match('{[}]}', ''); // OK
preg_match('{[\}\{]}', ''); // OK
?>