Регулярное выражение: совпадение между последним появлением персонажа и первым появлением другого персонажа - PullRequest
1 голос
/ 21 апреля 2020

У меня есть следующая строка:

COUNTRY/CITY/street_number_floor_tel

Я бы хотел извлечь то, что находится после последнего вхождения '/' и первого вхождения '_'. Итак, результат:

street

Пока мне удалось придумать это регулярное выражение:

[^/]+(?=_)

, что приводит к следующему:

street_number_floor

Так что я в основном не знаю, как остановиться после нахождения первого вхождения '_'.

Большое спасибо за любые подсказки заранее!

1 Ответ

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

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

(?<=/)[^/_]+(?=_[^/]*$)

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

Подробности

  • (?<=/) - положительный взгляд за спиной, требующий / непосредственно перед матчем
  • [^/_]+ - 1+ символов, отличных от / и _
  • (?=_[^/]*$) - положительный прогноз, требующий _, затем 0+ символов, отличных от /, до конца строки непосредственно справа от текущего местоположения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...