PHP: Найти и exctract в массив все экземпляры определенного текста в строке

У меня есть строка, которая содержит несколько «заполнителей» в ней, и каждый заполнитель помечен этим синтаксисом: {значение}.

Я хочу, чтобы вытащить каждый 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.