@anna_makeenko

Как правильно составить регулярноре выражение?

К примеру есть ссылки:

https://example.com/4scdhh0gifzd/my-file.txt.html
https://example.com/4scdhh0gifzd/my-file.txt.htm
https://example.com/4scdhh0gifzd/my-file.txt


Нужно в 5-й группе получить имя файла с расширением, но без .htm/.html в конце, если .htm/.html не является расширением файла.

Например:
https://example.com/4scdhh0gifzd/my-file.html - .html - расширение файла
https://example.com/4scdhh0gifzd/my-file.html.html - .html - не расширение файла

Пробую так:
(https?):\/\/((www\.)?example\.com)\/([a-z0-9]{12})\/([\w\-.]+)

https://regex101.com/r/kV3ssu/1

Однако не получается
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
@dodo512
Вместо ([\w\-.]+)
Нужно ([\w-]+\.?(?:[\w-]+|\.(?!html?$))*)
https://regex101.com/r/kV3ssu/4

Или ([\w-]+\.?[\w.-]*?)(?:\.html?$|$)
https://regex101.com/r/kV3ssu/5
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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