正则表达式匹配并替换为查询生成器

时间:2018-06-29 16:40:29

标签: javascript regex mongodb

我在以某种方式构造正则表达式时遇到问题,以便它可以与诸如>=, <=, <, >, =, !这样的字符串中的常见数学运算符>=10<50!45匹配,而且还可以识别匹配其中一个的字符。

这是我遇到问题的部分。 regex不仅可以根据我的集合查找匹配项,还可以记录其后的值,以便我可以使用此信息来构建查询。

上面的示例中生成的正则表达式和替换将类似于:{$gte: 10}, {$lt: 50}, {$ne: 45}

2 个答案:

答案 0 :(得分:0)

(>=|>|<|<=|!|=)(\d+\.?\d+?) <----此模式分别捕获运算符和数字。 As you can see here。它也适用于浮点数。

要从结果中构建查询,只需评估第一组以确定运算符,然后评估第二组的值。

答案 1 :(得分:0)

这是改进版,其中对=进行了一些修复,并允许使用一位数字字符。

它还考虑了空间。

/(\>|\<|\!|[\!\<\>]?\=)(\s*?\d+\.?\d*?)/

https://regexfiddler.com/e/pir1uy2s9wwh/match-for-math-operators