我一直在从事一些复杂的Regex写作。我有一些文本请求(例如SQL请求),我必须将其转换为Javascript中的JSON对象。为此,我正在考虑制作一个可以重复n次的正则表达式。
这是一个请求示例:
INSERT INTO {{ruleName}} RULES {{conditions}} WHEN {{true|false}}
我在这里的主要问题是conditions
部分,因为它可以包含一个基本条件(object.property {=|!=|<|<=|>|>=} value
)或带有{AND|OR}
或括号(与数学相同的规则)的多个嵌套条件。
为满足第一个条件,我编写了此正则表达式:/(\s*(\w+.?\w*)\s*(=|!=|>|<|<=|>=)\s*'(.*?)'\s*)/gi
但是我无法为多条件或嵌套条件案例编写好的正则表达式。
这是我目前的正则表达式:/(\s*(\w+.?\w*)\s*(=|!=|>|<|<=|>=)\s*'(.*?)'\s*)((\bAND\b|\bOR\b)(\s*(\w+.?\w*)\s*(=|!=|>|<|<=|>=)\s*'(.*?)'\s*)\s*){0,}/gi
有人可以帮我吗?
编辑:根据要求,这是两个多重或嵌套条件的示例
{condition1} AND {condition2} OR {condition3}
这里有多个条件{condition4} AND ({condition5} OR {condition6})
在那里嵌套了条件