Решение Regex only для сопоставления единственного вхождения без префикса в строке - PullRequest
1 голос
/ 04 апреля 2020

Предположим, у меня есть строка, которая может иметь параметры

--true config --false

Все параметры могут иметь префикс предопределенного префикса, такого как -- или !, и они могут появляться в любом поместите в строку до или после «непараметрического параметра».

Используя регулярное выражение only, как можно сопоставить все «непараметрические параметры» в строке, например, в приведенном выше примере это будет config.

Я смотрел на другие ответы, предполагающие негативный взгляд вперед, такие как ^(?!--).*, но они работают только для всей строки.

1 Ответ

1 голос
/ 04 апреля 2020

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

(?<!\S)(?!--|!)\S+

См. Демоверсию regex .

Подробности

  • (?<!\S) - отрицательный взгляд сзади, который не соответствует совпадению, если непосредственно слева от текущего местоположения есть непробельный символ
  • (?!--|!) - отрицательный взгляд вперед, который не соответствует совпадению, если сразу справа от текущее местоположение, есть подстрока -- или !
  • \S+ - 1+ непробельных символов.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...