Регулярные выражения в PHP - PullRequest
0 голосов
/ 23 апреля 2010

Извините за неясное описание, мой английский не очень хорош.

Моя проблема в том, что я хочу декодировать строку, и эта строка имеет вложенный контент, разделенный {}.
Например:

Строка:

{any string0{any string 00{any string 000....}}}{any string1}any string.

Результат, который я хочу получить:

 array[0] = {any string0{any string 00{any string 000....}}}
 array[1] = {any string1}

Надеюсь, это достаточно ясно.

1 Ответ

4 голосов
/ 23 апреля 2010

Чтобы наилучшим образом использовать вопрос (как ни странно, и, как мы надеемся, скоро будет отредактирован), следующий пример берет строку примера и предоставляет массив примеров.

$subject = '{blah\blah{\blah\blah...{\bl....}}}{blah...}blah... ';
$pattern = '/\{(?>[^{}]++|(?R))*\}/';

preg_match_all($pattern, $subject, $matches);
print_r($matches[0]);

Который производит:

Array
(
    [0] => {blah\blah{\blah\blah...{\bl....}}}
    [1] => {blah...}
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...