有一个字符串,按照php变量名规则取出所有符合的变量名。比如:
$str = '$dfdfd.fg.$sf.$d.$_POST';要得到
$dfdfd
$sf
$d
$_POST最好是以数组返回
请问下面的代码有什么问题<?php
$str = '$dfdfd.fg.$sf.$d.$_POST';
$pattern = "@\$[_a-zA-Z]+[_a-zA-Z0-9]*@";
$arr = preg_split($pattern, $str);print_r($arr);
?>
$str = '$dfdfd.fg.$sf.$d.$_POST';要得到
$dfdfd
$sf
$d
$_POST最好是以数组返回
请问下面的代码有什么问题<?php
$str = '$dfdfd.fg.$sf.$d.$_POST';
$pattern = "@\$[_a-zA-Z]+[_a-zA-Z0-9]*@";
$arr = preg_split($pattern, $str);print_r($arr);
?>
$pattern = "@\\$[_a-zA-Z]+[_a-zA-Z0-9]*@";//转义\
preg_match_all($pattern, $str,$arr);//用preg_split干嘛呀?这个是正则分割字符串。print_r($arr[0]);
$a=array();
$str = '$dfdfd.fg.$sf.$d.$_POST';
$newstr= explode(".",$str);
foreach ($newstr as $val){
if(substr($val,0,1)=='$'){
array_push($a,$val);}
}
print_r($a);
print_r($result);
这个不行吗
================================================
变量名与 PHP 中其它的标签一样遵循相同的规则。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。按照正常的正则表达式,它将被表述为:'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'。