2009-11-23 3 views
3

나는 RSS 서버에서 URL을 다운로드하고 그 URL에서 파일을 다운로드하는 루비 스크립트를 가지고있다.Ruby에서 URL을 2 부분으로 분할하는 방법은 무엇입니까?

나는과 같이 2 개 구성 요소로 URL을 분할해야 -이 할 수있는 방법을 마련하기 위해 사투를 벌인거야

http://www.website.com/dir1/dir2/file.txt 
--> 'www.website.com' and 'dir1/dir2/file.txt' 

. 나는 정규 표현식으로 놀았지만 아무 것도 효과가 없었다. 다른 사람들은 어떻게 이것을 할 것입니까?

답변

16

URI 라이브러리를 사용하십시오.

require 'uri' 
u = URI.parse("http://www.website.com/dir1/dir2/file.txt") 
u.host 
# => "www.website.com" 
u.path 
# => "/dir1/dir2/file.txt" 
+1

정규식은 문자열을 구문 분석하기위한 것입니다. URI는 문자열이 아니며 URI입니다. 따라서 정규 표현식을 사용하여 URI를 구문 분석해서는 안됩니다. Ruby는 지구상의 다른 모든 언어와 마찬가지로 이미 URI 구문 분석 라이브러리를 가지고 있습니다. 손으로 그것을 다시 구현하는 것은 단순한 바보입니다. 실제로 Ruby의 URI는 표준을 준수하지 않으므로 실제로 다시 구현해야합니다. * 누군가는 이미 http://addressable.RubyForge.Org/를 사용했습니다. –

1

간단한 방법으로 split을 사용할 수 있습니다.

split('/')[2] 
관련 문제