我有一个用以下结构组成的字符串 - 括号中的ID,然后是该ID的值,字符串可以包含ID和值对的数量和值对。例如(00(content1(r3(content2(27(content3(5c(content4
我想解析字符串并返回带有括号中元素键的ID的数组,而内容为值,例如。
Array
(
"00" => "CONTENT1"
"R3" => "CONTENT2"
"27" => "CONTENT3"
"5C" => "CONTENT4"
)
以下方面的任何帮助来解析此字符串。
在https://regex101.com/上对此进行了测试,并且像您期望的那样将您的字符串分开:
$string = '(00)CONTENT1(R3)CONTENT2(27)CONTENT3(5C)CONTENT4';
preg_match_all('/((w+))(w+)/mi', $string, $matches);
// Just reformatting to the desired output
$result = array_combine($matches[1], $matches[2]);
print_r($result);
给出:
Array
(
[00] => CONTENT1
[R3] => CONTENT2
[27] => CONTENT3
[5C] => CONTENT4
)
或不使用 str_replace
和 parse_str
:
<?php
$str = str_replace(['(', ')'], ['&', '='], '(00)CONTENT1(R3)CONTENT2(27)CONTENT3(5C)CONTENT4');
parse_str($str, $array);
print_r($array);
https://3v4l.org/mkl2z
结果:
Array
(
[00] => CONTENT1
[R3] => CONTENT2
[27] => CONTENT3
[5C] => CONTENT4
)