Напишите регулярное выражение, чтобы соответствовать до последнего форварда sla sh до первого знака равенства - PullRequest
0 голосов
/ 23 апреля 2020

Вот забавная проблема с регулярными выражениями. Напишите одно регулярное выражение, которое получит результаты для первой группы как «путь / к / файлу» для следующих строк примера:

  1. путь / к / файлу / foo = 1 / bar.txt
  2. путь / к / файлу / foo = 1 / bar = 2 / baz.txt
  3. путь / к / файлу / foo.txt

Чтобы объяснить, я хочу совпадать до финального форварда sla sh до первого появления '='.

Мне удалось сопоставить регулярное выражение с примером строки один (^.*)\/(.*)=, но он захватывает путь / к / file / foo = 1 из строки примера 2 - это не так, как задумано, я не хочу увидеть часть пути с '='.

Я могу использовать (^.*)\/(.*)=(.*)= для решения примера 2, но это не масштабируется для других примеров.

Пример 3 достаточно прост для захвата с помощью (^.*)\/ Приятно иметь возможность сопоставлять строку 3, но у меня есть способ легко решить эту проблему в моем коде.

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

1 Ответ

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

Вы должны использовать это регулярное выражение,

^([^=]+)\/

Это будет соответствовать всему, кроме =, и остановит совпадение, как только найдет /, и будет захватывать содержимое в группе 1, как вы хочу.

Проверьте это демо

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