PHP使用Regex提取字串中角括弧<>、小括弧()、中括弧[]、大括弧{}中的字元樣本,需要的朋友可以參考下
代碼如下:$str="你好<我>(愛)[北京]{天安門}"; echo f1($str); //返回你好 echo f2($str); //返回我 echo f3($str); //返回愛 echo f4($str); //返回北京 echo f5($str); //返回天安門 function f1($str) { $result = array(); preg_match_all("/^(.*)(?:<)/i",$str, $result); return $result[1][0]; } function f2($str) { $result = array(); preg_match_all("/(?:<)(.*)(?:>)/i",$str, $result); return $result[1][0]; } function f3($str) { $result = array(); preg_match_all("/(?:()(.*)(?:))/i",$str, $result); return $result[1][0]; } function f4($str) { $result = array(); preg_match_all("/(?:[)(.*)(?:])/i",$str, $result); return $result[1][0]; } function f5($str) { $result = array(); preg_match_all("/(?:{)(.*)(?:})/i",$str, $result); return $result[1][0]; } PS: (?:字元) 表示不捕獲這個字元。貌似PHP不支援將字元換成括弧。 否則的話可以將環視給嵌套進去,就可以迴圈匹配了。 PS2:環視:(?!) (?=) (?<!) (?<=) 有小於符號的在右側匹配,沒有的在左側匹配。驚嘆號表示不等,等號表示相等。 PS3:都過了驗證器的驗證,驗證器見參考資料。