使用正则表达式解析"{value}"形式的值列表

0 php regex pcre

我有一个像下面这样的字符串({}未知数):

{test}{test1}{test2}{test3}{test4}
Run Code Online (Sandbox Code Playgroud)

现在我想将内容{}输出并将它们放入数组中.我怎样才能做到这一点?我试过了:

preg_match( "/(\{{\S}+\}*/)*")
Run Code Online (Sandbox Code Playgroud)

但结果是错误的.非常感谢任何人的帮助.

Mat*_*iva 5

preg_match_all('/{(.*?)}/', $string, $match);
print_r($match[1]);
Run Code Online (Sandbox Code Playgroud)


eri*_*sco 5

<?php
$string = '{test}{test1}{test2}{test3}{test4}';
$parts = explode('}{', substr($string, 1, -1));
Run Code Online (Sandbox Code Playgroud)

此解决方案避免使用通常比简单字符串函数慢的正则表达式.此外,由于偏好,许多程序员希望在实际操作时避免使用正则表达式.