подобные штуки кстати часто приходится делать, например когда ссылки всякие надо анализировать например ссылка у ютуба на один и тот же видос может совершенно по разному выглядеть
но алгоритм +- один - ты пишешь регулярку которая выдергивает из ссылки инвариант например ID видео а потом его уже подставляешь в сгенерированную тобой ссылку стандартную
либо по суффиксу, либо по набору символов, либо никак если есть суффикс 0x - то шестнадцатеричное если есть буква хоть одна - тоже если только цифры - то это либо десятичное либо шестнадцатеричное если других нет
на самом деле - пока рука не набита - можешь просто цепочку из проверок делать не стремись сразу все в одну регулярку засунуть лучше порой несколько, но понятных, чем одна непонятная
т.к. одна сложная регулярка скорей всего будет делать то же самое что и цепочка простых, но просто это записано короче регулярки кстати легко могут повесить программу