我有一个包含多个模板化变量的字符串,如下所示:
$str = "Hello ${first_name} ${last_name}";
我怎样才能在这样的数组中提取这些变量:
$array = ['first_name', 'last_name'];
yws3nbqq1#
描述字符串时使用单引号而不是双引号。
$str = 'Hello ${first_name} ${last_name}'; preg_match_all('/{(.*?)}/s', $str, $output_array); dd($output_array[1]);
bnlyeluc2#
使用分解函数示例如下:
$str = "Hello ${first_name} ${last_name}"; $str_to_array = explode("$",$str); $array = array(); foreach($str_to_array as $data){ if (str_contains($data, '{')) { $array[] = str_replace("}","",str_replace("{","",$data)); } } print_r($array);
fcg9iug33#
您可以使用一个简单的正则表达式和preg_match_all来查找所有的匹配项,如下所示:
preg_match_all
<?php $pattern = '|\${.*?}|'; $subject = 'Hello ${first_name} ${last_name}'; $matches = ''; preg_match_all($pattern, $subject, $matches); print_r($matches); ?>
结果:
Array ( [0] => Array ( [0] => ${first_name} [1] => ${last_name} ) )
3条答案
按热度按时间yws3nbqq1#
描述字符串时使用单引号而不是双引号。
bnlyeluc2#
使用分解函数示例如下:
fcg9iug33#
您可以使用一个简单的正则表达式和
preg_match_all
来查找所有的匹配项,如下所示:结果: