Regex соответствует пути к файлу с пробелом или без него - PullRequest
1 голос
/ 29 мая 2020

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

\-inputfile\s*=\s*'?(.*?)(?=\/|\s|'|\||$)

Я в основном хотел бы сопоставить строку, начинающуюся с -inputfile =, за которой следует путь между '' или нет, и остановить совпадение, если /, |, или пробел или конец строки найдены.

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

Примеры регулярных выражений здесь .

1 Ответ

2 голосов
/ 29 мая 2020

Если я правильно понимаю из ваших примеров регулярных выражений, вы хотите обнаружить все вхождения ниже:

  1. -inputFile=path/without/space
  2. -inputFile='path with/space'
  3. -inputFile='path/with/single/quotation

Вы можете использовать:

\-inputfile=(('.*')|([^\s]*))

Дополнительная информация:

('.*') часть соответствует всем символам в одинарных кавычках ('), а часть ([^\s]*) будет соответствовать всем символам, кроме пробела. Вам необходимо указать его перед частью ([^\s]*), чтобы обнаружить 3. появление.

Более подробная информация:

Если вы не хотите, чтобы регулярное выражение сопоставлялось с 3. вхождением (я пишу это, потому что это странно обнаруживать), вы можете просто добавить одинарную кавычку в исключенный раздел следующим образом:

\-inputfile=(('.*')|([^'\s]*))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...