Сопоставление и замена регулярных выражений для построителя запросов - PullRequest
0 голосов
/ 29 июня 2018

У меня проблемы с построением регулярного выражения таким образом, чтобы оно совпадало с общими математическими операторами >=, <=, <, >, =, ! в такой строке, как: >=10<50!45, но также идентифицировало символы, которые встречаются после сопоставления с одним из них.

Это часть, с которой у меня проблемы. Как я могу иметь регулярное выражение не только находить совпадения на основе моего набора, но и записывать значение, которое приходит после этого, чтобы я мог строить запросы, используя эту информацию.

Результирующее регулярное выражение и замена из моего примера выше будет выглядеть примерно так: {$gte: 10}, {$lt: 50}, {$ne: 45}

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

Это улучшенная версия с некоторыми исправлениями = и допускает однозначный символ.

Он также учитывает пробелы.

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

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

0 голосов
/ 29 июня 2018

(>=|>|<|<=|!|=)(\d+\.?\d+?) <---- этот шаблон собирает операторы и числа отдельно. <a href="https://regex101.com/r/qBlF62/15" rel="nofollow noreferrer"> Как вы можете видеть здесь . Он также работает с числами с плавающей запятой.

Чтобы построить запрос на основе результатов, просто оцените первую группу, чтобы определить оператора, и оцените вторую группу по значению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...