gpt4 book ai didi

php - preg_match 包含键值模式的字符串

转载 作者:行者123 更新时间:2023-12-02 22:57:01 26 4
gpt4 key购买 nike

我需要 PHP 的 preg_match 的正则表达式,它可以处理以下内容:

variable1=true&variable2=1,2,3&variable3="test"&variable4!=true&variable5!=4,5,6&variable!="test"

我会更改为类似 json 的内容,但这不支持我需要的向后兼容性,任何建议,我得到的最接近的是:

/((\w+)(=|!=)("\w+"|true|false|\d+)*)/

这是部分成功的,任何帮助都会很棒。

最佳答案

使用字符串函数

$string = 'variable1=true&variable2=1,2,3&variable3="test"&variable4!=true&variable5!=4,5,6&variable!="test"';
$pairs = explode('&', $string);
foreach ($pairs as $pair) {
if (strstr($pair, '!=')) {
list($key, $value) = explode('!=', $pair);
} else {
list($key, $value) = explode('=', $pair);
}
$values[$key] = $value;
}

View the output on codepad

此代码首先使用 & 将字符串拆分为键值对。之后,它循环遍历每一对并尝试再次拆分它,首先使用 !=,如果失败,则使用 =

<小时/>

使用正则表达式

preg_match_all('/((\w+)(=|!=)("\w+"|true|false|[\d\,]+)*)/', $string, $matches);

我在 \d 周围添加了方括号 [...] 和转义逗号 \,

关于php - preg_match 包含键值模式的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11100537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com