以某种方式拆分字符串

时间:2009-10-06 12:03:55

标签: php

我有以下字符串

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

所以它继续。

我需要按以下方式分割字符串

1 => {ITEM1}家::::首页{/ ITEM1}

2 => {item2} contact_us ::::与我们联系{/ item2}

有办法吗?

3 个答案:

答案 0 :(得分:4)

$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]);

答案 1 :(得分:3)

你可以这样做:

$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 :(得分:2)

preg_split()与正则表达式/{.*?}.*?{\/.*?}/

一起使用