php - 从模式中的字符串获取数组 - key1 :val1, val2,..;key2 :val1,

标签 php regex

我想从这样的字符串中获取

color:blue,red;size:s

关联多数组

[
    color => [blue,red],
    size => [s]
]

我尝试使用 ([a-z]+):([a-z^,]+) 但这还不够;我不知道如何递归它或其他什么。

最佳答案

我不会使用正则表达式来做这样的事情。而是使用 explode()多次。

<?php

$str = 'color:blue,red;size:s';

$values = explode(';', $str);

$arr = [];
foreach($values as $val) {
    $parts = explode(':', $val);
    $arr[$parts[0]] = explode(',', $parts[1]);
}

输出:

Array
(
    [color] => Array
        (
            [0] => blue
            [1] => red
        )

    [size] => Array
        (
            [0] => s
        )

)

关于php - 从模式中的字符串获取数组 - key1 :val1, val2,..;key2 :val1,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40155161/

相关文章:

php - 处理类别和子类别 MySQL 或 JSON

PHP MCRYPT - RIJNDAEL 128 白色 Mcrypt CBC 给出不正确的输出

php - 幽灵脚本 |不可恢复的错误,退出代码 1

c# - 匹配 M/YYYY、MM/YYYY、M/YY 或 MM/YY 格式但不匹配 MM/DD/YYYY 的正则表达式

regex - 如何在 Crystal lang 中访问 .match 的结果作为字符串值

regex - 如何使用 Perl 忽略多行字符串中的最后一个换行符

数组元素的PHP组合

javascript - 客户端和服务器端编程有什么区别?

python - RegEx Tokenizer : split text into words, 数字、标点符号和空格(不要删除任何内容)

java - 正则表达式查找合格的变量使用