Как regex указать конец строки или знак вопроса?

Пытаюсь распарсить ID папки в ссылке Google Drive.
Пример ссылки
https://drive.google.com/drive/folders/1q5nL2z8yKS-0qvmlt9Jtq8u3iFgsu-ea

Также, ссылка может иметь в конце параметр. Вот так:
https://drive.google.com/drive/folders/1q5nL2z8yKS-0qvmlt9Jtq8u3iFgsu-ea?usp=sharing

Задача вычленить ID, в примере выше он 1q5nL2z8yKS-0qvmlt9Jtq8u3iFgsu-ea
Сейчас регулярка выглядит так:
^(?:https?:\/\/)?(?:www\.)?(?:drive\.google\.com\/drive\/folders\/)(.+)$

И не учитывает что искомая часть может заканчиваться либо знаком вопроса либо концом строки.
Пробовал добавлять что-то типа (\?|\$) - не работает.
Что ему туда скормить?
  • Вопрос задан
  • 3006 просмотров
Решения вопроса 1
@dodo512
Пробовал добавлять что-то типа (\?|\$) - не работает.
Что ему туда скормить?

Там лишний слеш перед $.
(.+?)(\?|$)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
xEpozZ
@xEpozZ
Веб-разработчик
^(?:https?:\/\/)?(?:www\.)?(?:drive\.google\.com\/drive\/folders\/)(.+)[\?\$]


https://regex101.com/r/WaVWMZ/1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы