在我的字符串中:
str= 'a.ab.name:"so and so" and b.ab.id:"22" or b.ab.name:"some and some"';
我正在以这种方式对字符串进行分组:
str= 'a.ab:(name:"so and so") and b.ab.id:"22" or b.ab.name:"some and some"';
使用正则表达式:
/a\.ab\.((\S+?:\".+\")|([^<>=]+?\(.+?\))|.+?){1}($|(\s+?(and|or)\s+?))/ig
但是我得到了:
str= 'a.ab:(name:"so) and so" and b.ab.id:"22" or b.ab.name:"some and some"';
因为它检查第一个and
并在其后加上右括号。有没有一种方法可以检查and
或or
是否在""
内,如果是,请不要在引号内使用方括号。
快速说明:name
和id
字段可能会更改,查询也会更改。
谢谢您的帮助!