請注意,括號樣式的開始和結束分隔符號並非 100% 沒有問題的解決方案,因為當它們在表達式中不成對出現時,需要進行轉義。這種不匹配的情況可能發生在它們出現在字元類別 [...] 中時,因為大多數元字符會失去其特殊含義。請參考以下範例
<?php
preg_match('{[{]}', ''); // 警告:preg_match(): 沒有結束匹配分隔符號 '}'
preg_match('{[}]}', ''); // 警告:preg_match(): 未知的修飾符 ']'
preg_match('{[}{]}', ''); // 警告:preg_match(): 未知的修飾符 ']'
?>
轉義它們可以解決這個問題
<?php
preg_match('{[\{]}', ''); // 正常
preg_match('{[}]}', ''); // 正常
preg_match('{[\}\{]}', ''); // 正常
?>