类似一个sql解析的功能,但是只有and or 括号保留字

比如有一条规则

(键盘 or 鼠标) or 笔记本电脑 and 华硕

按照保留字 and or ()提取关键词,期望结果

[
  ['键盘'],
  ['鼠标'],
  ['笔记本电脑','华硕']
]

有现成的包或者类似的这种做法?
(☆▽☆)

最佳答案

是这样吗

$str = '(键盘 and 鼠标) or 笔记本电脑';
$res = array_map(function ($v) {
    $v = Str::between($v, '(', ')');
    return explode(' and ', $v);
}, explode(' or ', $str));
dd($res);
1年前 评论
JinBB 1年前
讨论数量: 3

是这样吗

$str = '(键盘 and 鼠标) or 笔记本电脑';
$res = array_map(function ($v) {
    $v = Str::between($v, '(', ')');
    return explode(' and ', $v);
}, explode(' or ', $str));
dd($res);
1年前 评论
JinBB 1年前

这个应该是用函数搞定就行了吧!

怎么还用的上包了呢?

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!