Как сопоставить шаблон повторяющейся логической строки поиска - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь построить регулярное выражение, чтобы соответствовать всем битам логического поиска. Я могу подобраться ближе, но в итоге пропускаю несколько матчей. Вот то, что у меня так далеко.

Строка для проверки:

"фу и бар или база и все такое"

Вот что у меня так далеко (язнаете, мне не хватает некоторых символов, таких как кавычки, парены, и т. д. ,Добавляя + к концу регулярного выражения, он соответствует всей строке, но, похоже, игнорирует некоторые группы захвата после первой группы слов и затем захватывает последний бит (надеюсь, что это имеет смысл).

Желаемый результат:

[
  "foo AND bar OR baz AND whatever",
  "foo",
  "AND",
  "bar",
  "OR",
  "baz",
  "AND",
  "whatever"
]

ИЛИ

[
  "foo AND bar",
  "foo"
  "AND"
  "bar"
]
[
  "bar OR baz",
  "bar",
  "OR",
  "baz"
]
[
  "baz AND whatever",
  "baz",
  "AND",
  "whatever"
]

Первый желаемый результат будет предпочтительнее, я думаю. Итак, что мне здесь не хватает? Я почти уверен, что мне нужна обратная ссылка для захвата группы № 3, но не могу заставить это работать.

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