Подстрока URL соответствует регулярному выражению? - PullRequest
0 голосов
/ 27 ноября 2010

Предположим, я хочу, чтобы пользователь только вводил URL, начинающийся с http://www.google.com Какое регулярное выражение для этого?

Спасибо!

Ответы [ 4 ]

2 голосов
/ 27 ноября 2010

Просто получите подстроку от 0 до длины http://www.google.com и все готово.

1 голос
/ 27 ноября 2010

Вместо того, чтобы использовать регулярные выражения, вы можете рассмотреть возможность использования библиотеки URI , которая поставляется с Ruby. Он создан для того, чтобы разбирать и создавать URL-адреса, хорошо протестирован и менее подвержен ошибкам, чем попытка изобрести те же функции.

require 'uri'

url = URI.parse('http://www.google.com/path/to/page.html?a=1&b=2')
url.scheme # => "http"
url.host   # => "www.google.com"
url.path   # => "/path/to/page.html"
url.query  # => "a=1&b=2"

Если этого недостаточно, адрес Addressable :: URI еще более эффективен.

0 голосов
/ 27 ноября 2010

Rails имеет удобный старт_с?метод для этого.Если это просто статическая строка, регулярное выражение не требуется.

url.start_with?("http://www.google.com")

0 голосов
/ 27 ноября 2010

Попробуйте это:

/\Ahttp:\/\/www\.google\.com(.*)?\Z/

ruby-1.9.2-p0 > "http://www.google.com" =~ /\Ahttp:\/\/www\.google\.com(.*)?\Z/
=> 0 
ruby-1.9.2-p0 > "http://www.google.com/foobar" =~ /\Ahttp:\/\/www\.google\.com(.*)?\Z/
=> 0 
ruby-1.9.2-p0 > $1
=> "/foobar" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...