Расщепление строки определенным образом - PullRequest
0 голосов
/ 06 октября 2009

У меня есть следующая строка

{item1}home::::Home{/item1}{item2}contact_us::::Contact Us{/item2}{item3}.....

и так продолжается.

Мне нужно разбить строку следующим образом

1 => {} item1 дома :::: Главная {/ item1}

2 => {item2} contact_us :::: Свяжитесь с нами {/ item2}

Есть ли способ?

Ответы [ 3 ]

4 голосов
/ 06 октября 2009
$input = '{item1}home::::Home{/item1}{item2}contact_us::::Contact Us{/item2}{item3}.....';
$regex = '/{(\w+)}.*{\/\1}/';
preg_match_all($regex, $input, $matches);
print_r($matches[0]);
3 голосов
/ 06 октября 2009

Вы можете сделать это так:

$text = "{item1}home::::Home{/item1}{item2}contact_us::::Contact Us{/item2}{item3}.....){/item3}";
preg_match_all('/{item\d}.+?{\/item\d}/', $text, $results);

var_dump($results) будет производить:

Array
(
    [0] => Array
        (
            [0] => {item1}home::::Home{/item1}
            [1] => {item2}contact_us::::Contact Us{/item2}
            [2] => {item3}.....){/item3}
        )

)
2 голосов
/ 06 октября 2009

Используйте preg_split() с шаблоном регулярных выражений /{.*?}.*?{\/.*?}/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...