⑴ php如何提取大括号中内容和参数 例如:{name='abc' count='2'}
1.建议使用json格式,这样转换简单
使用json_decode或使用网上有现成的json.class.php的类,实现转换
2.如果是自定义的
可以使用简单的语句实现提取。
<?php
$param = "{name='abc' count='2'}";
$tmp = substr($param, 1, -1);
$tmpArr = explode(' ', $tmp);
foreach ($tmpArr as $v) {
eval('$' . $v . ';');
}
echo $name;
echo $count;
?>
⑵ php 提取数组中所有括号内的内容,急,急,急
使用语句 implode('、',array_keys($arr[0])) 可以得到结果,测试代码和运行结果如下图:
⑶ PHP正则表达式提取字符串中尖括号<>、小括号()、中括号[]、大括号{}中的字符
1、
function f1($str)
{
$result = array();
preg_match_all("/^(.*)(?:<)/i",$str, $result);
return $result[1][0];
}
2、
function f2($str)
{
$result = array();
preg_match_all("/(?:<)(.*)(?:>)/i",$str, $result);
return $result[1][0];
}
3、
function f3($str)
{
$result = array();
preg_match_all("/(?:\()(.*)(?:\))/i",$str, $result);
return $result[1][0];
}
4、
function f4($str)
{
$result = array();
preg_match_all("/(?:\[)(.*)(?:\])/i",$str, $result);
return $result[1][0];
}
5、
function f5($str)
{
$result = array();
preg_match_all("/(?:\{)(.*)(?:\})/i",$str, $result);
return $result[1][0];
}
PS: (?:字符) 表示不捕获这个字符。貌似PHP不支持将字符换成括号。
否则的话可以将环视给嵌套进去,就可以循环匹配了。
PS2:环视:(?!) (?=) (?<!) (?<=)
有小于号的在右侧匹配,没有的在左侧匹配。感叹号表示不等,等于号表示相等。
PS3:都过了验证器的验证,验证器见参考资料。
⑷ php 正则表达式 提取字符串内小括号中的数字,只要数字
$str="一二三四五ABN420122(电话:123455)";
$reg=
'/.*\(.*:(.*)\)/';//
冒号
和$str保持一致
$reg=
'/.*\(.*(\d{6,})\)/';
$reg=
'/.*\(.*[^\d](\d+)\)/';
preg_match_all
($reg,$str,$want);
print_r
($want[1]);
3种正则
都可以