【发布时间】:2015-07-30 02:36:32
【问题描述】:
我很少使用正则表达式,但我认为我可能遇到需要它们的情况(使用 preg_match_all)。
输入:
10 - RIGHT SIDE|Validated,11 - ENTRY DOOR|Validated,20 - ENTRY DOOR|Not Validated
我试图用逗号分割每个数组索引,理想情况下,键是管道之前的文本,值是管道之后的文本。
预期输出:
array(0): key(10 - RIGHT SIDE) => value(Validated)
array(1): key(11 - ENTRY DOOR) => value(Validated)
array(2): key(20 - ENTRY DOOR) => value(Not Validated)
这总是在一个长的文本字符串中。
这是我尝试过的:
preg_match_all('/([^|]*?):([^,]*),?/', $strPoints, $arrPoints);
$out = array_combine($arrPoints[1], $arrPoints[2]);
这给了我一些接近的东西(截断了输出):
Array
(
[29 - Em Exit] => ENTERTAINMENT AREA|Not Validated
[35 - Em Exit] => ENTERTAINMENT AREA|Validated
[36 - Em Exit] => ENTERTAINMENT AREA|Validated
)
【问题讨论】:
-
您的正则表达式查找
:冒号,而您的示例使用|管道作为分隔符。 (你的最终输出是如何以及在哪里产生的不是很清楚..)
标签: php arrays regex associative-array preg-match-all