Соответствие веб-адреса через регулярное выражение

Я хочу сопоставить веб-адрес через регулярное выражение, которое должно захватывать http://www.google.com, а также www.google.com, то есть с и без протокол.

Ответ 1

Ну, это зависит от того, что вы хотите захватить ( "FTP"? "/index.htm??), потому что общий захват URI на основе стандарта RFC очень тяжелый, но вы можете начать с:

/^((https?\:\/\/)?([\w\d\-]+\.){2,}([\w\d]{2,})((\/[\w\d\-\.]+)*(\/[\w\d\-]+\.[\w\d]{3,4}(\?.*)?)?)?)$/

Сложный вид?

Ответ 2

Попробуйте RegexLib.

Ответ 3

Прочитайте RFC 3986. Это не так просто, как вы думаете. Работа проще, если у вас есть только небольшой набор URL-адресов для разбора.

Ответ 4

Почему бы не

/google\.com/

?

Он ловит http://www.google.com, www.google.com и даже google.com бесплатно!: -)