使用正则表达式将字符串括在大括号中

时间:2010-08-11 20:30:32

标签: php regex

我想获得以下类型字符串的数组:

data {string1} {string2} {string3} data

我想得到一个值为string1 / string2 / strin3的数组。我怎么能这样做?

3 个答案:

答案 0 :(得分:3)

单行无法捕获括号,该字符串位于$ stuff:

$arr = preg_match_all('/(?<={)[^}]+(?=})/', $stuff, $m) ? $m[0] : Array();

结果:

foreach($arr as $a) echo "$a\n";

string1
string2
string3

此致

RBO

答案 1 :(得分:0)

你可以尝试:

$data = '';
$matches = array();
if (preg_match_all('#\\{([^}]*)\\}#', $string, $matches, PREG_PATTERN_ORDER)) {
    $data = implode('/', $matches[1]);
}
echo $data;

答案 2 :(得分:0)

$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