gpt4 book ai didi

javascript数组解析匹配

转载 作者:行者123 更新时间:2023-11-30 10:22:10 24 4
gpt4 key购买 nike

假设我有一个数组。

["red", "blue", "neon", "black", "orange"]

我想评估某个匹配模式是否为真。

我希望逗号表示 OR,&& 表示 AND。

"red&&blue" -> true
"blue&&white" -> false
"red,white" -> true
"(red&&blue),(red&&white)" -> true
"(red&&blue)&&(red&&white)" -> false
"(red&&blue)&&(red&&neon)" -> true

我应该使用什么样的匹配方案?我不想从头开始实现解析器,如果有任何现有的解析器会很棒,但除此之外我希望逻辑能够像它在 javascript 中的工作方式一样工作,具有无限的复杂性。

我基本上是在寻找类似这样的东西,但对于 javascript: Java library for parsing & building logical expressions

最佳答案

对于 future 的读者,这里有一个更可靠的方法来完成这项工作:

基本上就是这样 - 无需重新发明轮子。

对于您发布的示例,语法可以是这样的:

{
var props = ["red", "blue", "neon", "black", "orange"];
}


start
= additive

additive
= left:multiplicative "," right:additive { return left || right }
/ multiplicative

multiplicative
= left:primary "&&" right:multiplicative { return left && right }
/ primary

primary
= atom
/ "(" additive:additive ")" { return additive; }

atom
= letters:[a-z]+ { return props.indexOf(letters.join("")) >= 0 }

关于javascript数组解析匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21086657/

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