Разбор списка значений вида `{value}` с помощью регулярных выражений - PullRequest
0 голосов
/ 22 апреля 2010

У меня есть одна строка, подобная следующей (число {} неизвестно):

{test}{test1}{test2}{test3}{test4}

Теперь мне нравится получать содержимое в {} и помещать его в массив.Как я могу это сделать?Я пытался:

preg_match( "/(\{{\S}+\}*/)*")

Но результат неправильный.Большое спасибо за чью-либо помощь.

Ответы [ 3 ]

5 голосов
/ 22 апреля 2010
<?php
$string = '{test}{test1}{test2}{test3}{test4}';
$parts = explode('}{', substr($string, 1, -1));

Это решение позволяет избежать использования регулярных выражений, которые часто работают медленнее, чем простые строковые функции. Кроме того, многие программисты хотят по возможности избегать регулярных выражений из-за предпочтений.

5 голосов
/ 22 апреля 2010
preg_match_all('/{(.*?)}/', $string, $match);
print_r($match[1]);
1 голос
/ 22 апреля 2010

попробуй preg_match_all('/\{(.+)\}/U', $text)

...