Я пытаюсь сопоставить несколько значений с одним регулярным выражением.
Я хочу извлечь флаг и значение, если оно присутствует, однако я хочу предоставить пользователю возможность вводить флаг несколькими различными способами.
npm start search
npm start search=test-string
npm start search="test"
npm start search='test'
npm start search="test, test-string"
npm start search=' test,test '
Я хочу иметь возможность анализировать флаг и значение после =
, после равенства это может быть только одно слово или несколько значений, разделенных запятой в одинарных или двойных кавычках.
вот что я пробовал
(^[^=]+)\=([^'"].*)?
(выделено жирным шрифтом) - это то, что я пытаюсь сопоставить, группа 1 будет ключевым словом, а группа 2 будет необязательным поисковым значением.
npm начать поиск
npm start search=тестовая строка
npm start search="test"
npm start search='test'
npm start search="test, test-string"
npm start search=' тест,тест '
Я пытался использовать отрицательный взгляд вперед и назад, но продолжаю терпеть неудачу...
=
необязательным? - person Barmar   schedule 13.04.2018?
после=
, так что это не обязательно. - person Barmar   schedule 13.04.2018=
не совпадает, поэтому группа захвата не установлена. - person Barmar   schedule 13.04.2018^(^[^=\n]+)\=?
, будет соответствовать всем флагам, теперь мне нужно выяснить все значения - person Shannon Hochkins   schedule 13.04.2018