Легко создать Regex, который будет соответствовать определенным URL-адресам, но практически невозможно написать тот, который будет соответствовать любому действительному URL, а также НЕ соответствовать любому недействительномуURL-адрес.Для начала вы должны справиться с процентным кодированием и правилами о том, когда его можно / нужно использовать для разных символов.
Я также должен отметить, что none ваших примеров не являетсядействительный URL-адрес в соответствии со спецификациями URL-адресов.
Мой совет - использовать new URL(String)
или new URI(String)
для проверки недействительных URL-адресов, а затем проверять компоненты для выполнения детального сопоставления.