2011-01-17 6 views
15

가능한 중복에 맞게 :
Regex to match URL
regex to remove the webpage part of a url in ruby루비 정규 표현식은 URL을

내가 파일에 모든 URL을 구문 분석에 대한 정규 표현식을 찾아이다.
나는 인터넷 검색을 통해 얻은 많은 정규 표현식을 시도했지만 하나 또는 다른 경우에는 실패합니다. 내 아이디어는 begening에서 http 또는 https의 존재를 확인하고 빈 공간을 볼 때까지 모든 것을 일치시키는 것을 작성하는 것입니다.
어떤 아이디어?
참고 : URL을 구문 분석하지 않아도 파일에서 모든 URL을 지우거나 읽지 않아도됩니다.

+0

P.S : 여기에 레일을 볼 수 있습니까? 이 태그를 삭제합니다. Ruby와 Rails의 차이점을 알고 계십니까? – Nakilon

답변

18

이 작업을 시도 할 수 있습니다 :

/https?:\/\/[\S]+/ 

\S는 공백이 아닌 문자를 의미합니다.

(Rubular)

+2

정말 URI 정규식인가요? http (s)로 시작하는 문자열을 찾는 것입니다 ... uri가 아닙니다. – Mohamad

51

표준 URI 라이브러리는 URL 문자열에 대한 정규식입니다 URI.regexp을 제공합니다.

require 'uri' 
string.scan(URI.regexp) 

http://ruby-doc.org/stdlib/libdoc/uri/rdoc/index.html

+8

NB 기본적으로 모든 URL을 문자열에서 파싱하는 URI.extract 메서드가 있습니다. 굉장히 유용하다. – rogerdpack

+0

정의되지 않은 지역 변수 또는 메서드'string 'for main : Object (NameError) 의미가 있습니까? String –

+0

URI.regexp는 'http : // x'또는 'http :'와 같이 실제 유효한 URL이 아닌 문자열과 일치하는 것으로 보입니다. –