Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 以某种方式拆分字符串_Php - Fatal编程技术网

Php 以某种方式拆分字符串

Php 以某种方式拆分字符串,php,Php,我有以下字符串 {item1}home::::Home{/item1}{item2}contact_us::::Contact Us{/item2}{item3}..... 就这样继续下去 我需要按下面的方法拆分字符串 1=>{item1}home:::home{/item1} 2=>{item2}联系我们:::联系我们{/item2} 有没有办法?将preg_split()与正则表达式模式/{.*.}.*.{\/.*.}/您可以这样做: $input = '{item1}home::::Ho

我有以下字符串

{item1}home::::Home{/item1}{item2}contact_us::::Contact Us{/item2}{item3}.....
就这样继续下去

我需要按下面的方法拆分字符串

1=>{item1}home:::home{/item1}

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


有没有办法?

preg_split()
与正则表达式模式
/{.*.}.*.{\/.*.}/
您可以这样做:

$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]);
$text = "{item1}home::::Home{/item1}{item2}contact_us::::Contact Us{/item2}{item3}.....){/item3}";
preg_match_all('/{item\d}.+?{\/item\d}/', $text, $results);
var\u dump($results)
将产生:

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

)