php正则:匹配(),{},[]小括号,大括号,中括号里面的内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php正则:匹配(),{},[]小括号,大括号,中括号里面的内容相关的知识,希望对你有一定的参考价值。

php正则:匹配(),{},[]小括号,大括号,中括号里面的内容

比如有一段字符:

$s=‘60c8

{"code":"200","message":"success","data":[{"_id":"780521","time":1476768196,"position":{"long":108.90415,"lat":35.25623},"speed":495.677952,"anum":"B6552","atype":"A321","atypename":"Airbus A321-231","angle":"198","vspeed":"-576","device":"9d26b827eb566225","onground":"0","updatetime":1476768198,"height":3581.4,"fnum":"CSN3722 ","alert":"0","spi":"0","squawk":"1107","emergency":"0"}]}‘;

  

我要匹配,{}括号里面的内容,单独拿出来。

 preg_match(‘/(?:\{)(.*)(?:\})/i‘, $s, $match);
var_dump($match);

  

 

说明:

PHP使用正则表达式提取字符串中尖括号<>、小括号()、中括号[]、大括号{}中的字符示例,需要的朋友可以参考下

$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:都过了验证器的验证,验证器见参考资料。 

 





以上是关于php正则:匹配(),{},[]小括号,大括号,中括号里面的内容的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式:小括号中括号大括号的区别

正则表达式:小括号中括号大括号的区别

正则表达式:小括号中括号大括号的区别

怎么用正则表达式匹配小括号里内容(含括号)?

正则表达式中:小括号中括号大括号概述

正则表达式小知识点