laravel 如何解析字符串中的模板变量

iaqfqrcu  于 2023-01-06  发布在  其他
关注(0)|答案(3)|浏览(173)

我有一个包含多个模板化变量的字符串,如下所示:

$str = "Hello ${first_name} ${last_name}";

我怎样才能在这样的数组中提取这些变量:

$array = ['first_name', 'last_name'];
yws3nbqq

yws3nbqq1#

描述字符串时使用单引号而不是双引号。

$str = 'Hello ${first_name} ${last_name}';
preg_match_all('/{(.*?)}/s', $str, $output_array);
dd($output_array[1]);
bnlyeluc

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);
fcg9iug3

fcg9iug33#

您可以使用一个简单的正则表达式和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}
        )

)

相关问题