Я хочу получить массив следующих типов строк:
data {string1} {string2} {string3} data
Я хочу получить массив со значениями string1 /строка2 / strin3.Как я могу это сделать?
однострочник без скобок, строка находится в $ stuff:
$arr = preg_match_all('/(?<={)[^}]+(?=})/', $stuff, $m) ? $m[0] : Array();
результат:
foreach($arr as $a) echo "$a\n"; string1 string2 string3
С уважением
rbo
$str = "data {string1} {string2} {string3} data"; preg_match_all('/{\w*}/',$str, $matches); echo $matches[0][0]; // {string1} echo $matches[0][1]; // {string2} echo $matches[0][2]; // {string3}
PHP preg_match_all
Вы можете попробовать:
$data = ''; $matches = array(); if (preg_match_all('#\\{([^}]*)\\}#', $string, $matches, PREG_PATTERN_ORDER)) { $data = implode('/', $matches[1]); } echo $data;