Регулярное выражение для получения строк в скобках - PullRequest
1 голос
/ 12 августа 2010

Я хочу получить массив следующих типов строк:

data {string1} {string2} {string3} data

Я хочу получить массив со значениями string1 /строка2 / strin3.Как я могу это сделать?

Ответы [ 3 ]

3 голосов
/ 12 августа 2010

однострочник без скобок, строка находится в $ stuff:

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

результат:

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

string1
string2
string3

С уважением

rbo

0 голосов
/ 12 августа 2010
$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

0 голосов
/ 12 августа 2010

Вы можете попробовать:

$data = '';
$matches = array();
if (preg_match_all('#\\{([^}]*)\\}#', $string, $matches, PREG_PATTERN_ORDER)) {
    $data = implode('/', $matches[1]);
}
echo $data;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...