У меня есть строка, которая содержит несколько «заполнителей» в ней, и каждый заполнитель помечен этим синтаксисом: {значение}.
Я хочу, чтобы вытащить каждый placeholder внутри строки и загрузить их в массив.
Например, если бы у меня была эта строка здесь … "это строка {test}, чтобы продемонстрировать мою {цель}."
Я бы хотел, чтобы конечным результатом был массив, содержащий два значения: «test» и «object».
Я ткнулся с preg_split, но не мог обернуть вокруг него голову. Любые идеи о том, как это сделать?
Благодаря!
Вы можете попробовать следующее, чтобы получить то, что вам нужно:
$placeHolders = array(); if(preg_match_all('/\{([^{}}]+)\}/', $haystack, $matches)) { $placeHolders = $matches[1]; }
Поскольку вы конкретно не указали, что будет разрешено в держателе места, я сохранил регулярное выражение довольно общее. В принципе, заполнителем будет что угодно внутри фигурных скобок (кроме самих фигурных скобок).
Вы можете ограничить больше, например, только буквенно-цифровыми символами. В этом случае попробуйте:
'/\{([a-zA-Z0-9]+)\}/'
Изменить: ресурс для регулярных выражений: http://www.regular-expressions.info/reference.html
Я думаю, вы можете использовать это
preg_match_all('/\{([^\}]+)\}/i', $your_string, $match);
все заполнители в $ match [1]; Подробнее об этой функции читайте по адресу http://php.net/manual/en/function.preg-match-all.php.