$str="你好<我>(爱)[北京]{天安门}"; echof1($str); //返回你好 echof2($str); //返回我 echof3($str); //返回爱 echof4($str); //返回北京 echof5($str); //返回天安门 functionf1($str) { $result= array(); preg_match_all("/^(.*)(?:<)/i",$str, $result); return$result[1][0]; } functionf2($str) { $result= array(); preg_match_all("/(?:<)(.*)(?:>)/i",$str, $result); return$result[1][0]; } functionf3($str) { $result= array(); preg_match_all("/(?:\()(.*)(?:\))/i",$str, $result); return$result[1][0]; } functionf4($str) { $result= array(); preg_match_all("/(?:\[)(.*)(?:\])/i",$str, $result); return$result[1][0]; } functionf5($str) { $result= array(); preg_match_all("/(?:\{)(.*)(?:\})/i",$str, $result); return$result[1][0]; }
PS: (?:字符) 表示不捕获这个字符。貌似PHP不支持将字符换成括号。
否则的话可以将环视给嵌套进去,就可以循环匹配了。
PS2:环视:(?!) (?=) (?<!) (?<=)
有小于号的在右侧匹配,没有的在左侧匹配。感叹号表示不等,等于号表示相等。
否则的话可以将环视给嵌套进去,就可以循环匹配了。
PS2:环视:(?!) (?=) (?<!) (?<=)
有小于号的在右侧匹配,没有的在左侧匹配。感叹号表示不等,等于号表示相等。