我有一个字符串,它是数组模式:
["foo","bar","bra bra","xxx123"]
如何获取foo
、bar
、bra bra
、xxx123
模式为["","",""]
您可以在没有regex:的情况下完成此操作
$result = explode('","', trim($str, '[]"'));
或使用正则表达式:
if (preg_match_all('~"([^"]*)"~', $str, $m))
$result = $m[1];
或处理转义引号的正则表达式:
if (preg_match_all('~"([^"''']*(?s:'''.[^"''']*)*)"~', $str, $m))
$result = $m[1];
由于php 5.4,这是一种简单的数组方法。
请参阅:http://docs.php.net/manual/en/language.types.array.php
具体报价:
从PHP 5.4开始,您还可以使用短数组语法,它将带有[]的array()。
因此,基本方法与任何其他阵列一样:
$arr = ["foo","bar"];
foreach($arr AS $arg){
echo $arg; //you can add your logic here for comma seperating or beautifying
}
我怀疑正则表达式可能是错误的工具-试试explode
!
$string='["foo","bar","bra bra","xxx123"]';
//Remove start/end
if (substr($string,0,2)!='["') die('Malformed start!');
if (substr($string,-2)!='"]') die('Malformed end!');
$string=substr($string, 2, -2);
//Now explode
$array=explode('","', $string);
print_r($array);