Если выглядит так, будто вы пропустили * или + в последней соответствующей группе, значит, она соответствует только одному символу.Итак, вы хотите "([:///a-zA-Z////\.])+(.com)+([:///a-zA-Z////\.])*"
или "([:///a-zA-Z////\.])+(.com)+([:///a-zA-Z////\.])+"
.
Теперь я не знаю, упрощено ли это регулярное выражение для вашего случая, но оно не соответствует всем URL-адресам.В качестве примера этой проверки https://www.regextester.com/20
Если вы пытаетесь сопоставить какой-либо URL, я бы порекомендовал переосмыслить вашу проблему и попытаться упростить ее до более конкретных типов URL, как пример, который вы предоставили.
РЕДАКТИРОВАТЬ: И почему (.com)+
?Действительно ли есть случай, когда несколько ".com" появляются как .com.com.com
Также я думаю, что у вас есть небольшая опечатка, и она должна быть (\.com)
.Но поскольку у вас есть ([:///a-zA-Z////\.])+
, его можно уменьшить до (com)
, однако я думаю, что явное (\.com)
делает его более простым для чтения выражением.