В каких случаях происходит сбой?
Согласно библиотеке regexpert , вы можете использовать
regexp = /(^$)|(^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$)/ix
, а затем выполнить scan
для текста.
РЕДАКТИРОВАТЬ: похоже, регулярное выражение поддерживает пустую строку.Просто удалите начальный (^$)
и все готово