PHP:查找并将字符串中特定文本的所有实例提取到一个数组中

PHP:查找并将字符串中特定文本的所有实例提取到一个数组中,php,regex,string,Php,Regex,String,我有一个字符串,其中包含几个“占位符”,每个占位符都用以下语法标记:{value} 我希望能够拉出字符串中的每个占位符,并将它们加载到数组中 例如,如果我这里有这个字符串。。。这是一个{test}字符串,用于演示我的{objective} 我希望最终结果是一个包含两个值的数组,“test”和“objective” 我用preg_split拨弄了一下,但我的头还是绕不过去。关于如何实现这一点有什么想法吗 谢谢 我想你可以用这个 preg_match_all('/\{([^\}]+)\}/i', $

我有一个字符串,其中包含几个“占位符”,每个占位符都用以下语法标记:{value}

我希望能够拉出字符串中的每个占位符,并将它们加载到数组中

例如,如果我这里有这个字符串。。。这是一个{test}字符串,用于演示我的{objective}

我希望最终结果是一个包含两个值的数组,“test”和“objective”

我用preg_split拨弄了一下,但我的头还是绕不过去。关于如何实现这一点有什么想法吗


谢谢

我想你可以用这个

preg_match_all('/\{([^\}]+)\}/i', $your_string, $match);
$match[1]中的所有占位符;

上阅读有关该功能的更多信息。您可以尝试以下方法以获得所需的功能:

$placeHolders = array();
if(preg_match_all('/\{([^{}}]+)\}/', $haystack, $matches)) {
    $placeHolders = $matches[1];
}
因为您没有明确说明占位符中允许的内容,所以我将正则表达式保留为非常通用的。基本上,占位符是大括号内的任何内容(大括号本身除外)

您可能希望限制更多字符,例如仅限字母数字字符。在这种情况下,请尝试:

'/\{([a-zA-Z0-9]+)\}/'
编辑:正则表达式的资源: