Один из вариантов - заменить последнюю часть на \/\w+(?:\.\w+)*$
.
Это будет соответствовать 1+ разу символа слова, за которым следует повторяющаяся группа, которая будет соответствовать 0+ разу точки и 1+ раза символу слова и утверждать конец строки $
Если может быть только 1 деталь, за которой следует точка, то *
можно заменить на ?
, чтобы сделать его необязательным.
Regex demo
Если он находится не в конце строки, вы можете использовать \/\w+(?:\.\w+)*(?!\S)
, используя отрицательный прогноз, чтобы утверждать, что то, что справа, не является символом без пробелов.
Regex demo
Обратите внимание, что (?:facebook)
можно записать без структуры группировки, а начало можно записать, просто сделав s необязательным (?:https?:\/\/)?
. В зависимости от разделителя вы не должны избегать косой черты.