2011-01-17 26 views
15

Bản sao có thể xảy ra:
Regex to match URL
regex to remove the webpage part of a url in rubycủa Ruby biểu hiện thường xuyên để phù hợp với một url

Tôi tìm kiếm một biểu thức chính quy để phân tích tất cả các url trong một tập tin.
tôi đã thử nhiều biểu thức chính quy tôi nhận được sau khi googling nhưng nó không thành công trong một hoặc trường hợp khác. ý tưởng của tôi là viết một trong đó kiểm tra presense của http hoặc https lúc bắt đầu và nó sẽ phù hợp với tất cả mọi thứ cho đến khi nó nhìn thấy một không gian trống.
bất kỳ ý tưởng nào?
LƯU Ý: tôi không cần phải phân tích cú pháp url nhưng xóa tất cả các url khỏi một tệp hoặc ít nhất làm cho nó không đọc được.

+0

P.S .: nơi nào bạn thấy Rails đây? Tôi xóa thẻ này. Bạn có biết sự khác biệt giữa Ruby và Rails không? – Nakilon

Trả lời

18

Bạn có thể thử này:

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

Các \S nghĩa là bất kỳ nhân vật phi khoảng trắng.

(Rubular)

+2

Đó thực sự là một regex uri mặc dù? Đó chỉ là tìm kiếm bất kỳ chuỗi nào bắt đầu bằng http (s) ... mà không phải là một uri. – Mohamad

51

Thư viện URI tiêu chuẩn cung cấp URI.regexp đó là biểu hiện thường xuyên cho chuỗi url.

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

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

+8

NB cũng có phương thức URI.extract cơ bản phân tích tất cả các url của một chuỗi. Rất hữu dụng. – rogerdpack

+0

biến cục bộ không xác định hoặc phương thức 'chuỗi 'cho chính: Đối tượng (TênError) Ý của bạn là gì? Chuỗi –

+0

URI.regexp dường như khớp với các chuỗi không thực sự hợp lệ các URL như 'http: // x', hoặc thậm chí chỉ là' http: '. –

Các vấn đề liên quan