Tôi nghĩ đây sẽ là một tìm kiếm đơn giản trên google nhưng dường như không phải. Tôi có thể sử dụng regex nào trong C# để phân tích URL bao gồm bất kỳ chuỗi truy vấn nào từ văn bản lớn hơn? Tôi đã dành rất nhiều thời gian và tìm thấy rất nhiều ví dụ về những ví dụ không bao gồm chuỗi truy vấn. Và tôi không thể sử dụng System.URI, bởi vì giả sử bạn đã có URL ... Tôi cần tìm nó trong văn bản xung quanh.regex cho URL bao gồm chuỗi truy vấn
Trả lời
này sẽ nhận được chỉ là về bất cứ điều gì (bạn có thể thêm các giao thức bổ sung):
@"(https?|ftp|file)\://[A-Za-z0-9\.\-]+(/[A-Za-z0-9\?\&\=;\+!'\(\)\*\-\._~%]*)*"
Khó khăn thực sự là việc tìm kiếm kết thúc. Như vậy, mô hình này dựa vào việc tìm kiếm một ký tự không hợp lệ. Đó sẽ là bất kỳ thứ gì ngoài chữ cái, số, gạch nối hoặc dấu chấm trước khi kết thúc tên miền hoặc bất kỳ thứ gì ngoài dấu cộng (/), dấu hỏi (?), Dấu và (&), bằng dấu (=), dấu chấm phẩy (;), dấu cộng (+), dấu chấm than (!), dấu nháy đơn/dấu nháy đơn ('), dấu ngoặc mở/đóng, dấu sao (*), dấu gạch dưới (_), dấu ngã (~) hoặc dấu phần trăm (%)) sau tên miền.
Lưu ý rằng điều này sẽ cho phép các URL không hợp lệ như
http://../
Và nó sẽ nhặt những thứ sau một URL, chẳng hạn như trong chuỗi này:
Có lẽ bạn nên thử http://www.google.com.
Trường hợp "http://www.google.com."
(với dấu chấm) sẽ được khớp.
Nó cũng sẽ bỏ lỡ URL mà không bắt đầu với một đặc tả giao thức (đặc biệt là các giao thức trong tập đầu tiên của ngoặc Ví dụ, nó sẽ bỏ lỡ URL trong chuỗi này:.
Có lẽ bạn nên cố gắng www.google.com.
nó rất khó khăn để có được mọi trường hợp nếu không có ranh giới tốt hơn xác định.
Không hoạt động ... xem phản hồi ở đây: http://stackoverflow.com/questions/9125016/get-url-from-a-text – kape123
@ kape123: "Không hoạt động" không hữu ích lắm. Tôi chỉ ra chính xác những thiếu sót của nó là gì. Nó hoạt động như mô tả. Có trường hợp nào khác mà bạn muốn làm việc không? –
Kiểm tra lớp QueryString builder của anh chàng này -
Microsoft cũng có một UriBuilder có thể giúp bạn -
http://msdn.microsoft.com/en-us/library/system.uribuilder.query.aspx
Những giao diện này tốt cho việc xây dựng các chuỗi truy vấn, nhưng JoelFan muốn xác định URL, chứ không phải xây dựng chúng. – thetaiko
RegexLib có rất nhiều thứ hữu ích ...
Sử dụng ABNF vào cuối RFC3986 như là một điểm khởi đầu để làm cho nó đúng.
Điều này sử dụng chúng để xác thực URI bằng Python; không phải những gì bạn đang tìm kiếm, nhưng nó nên đưa ra một ý tưởng về hướng bạn nên đi vào: http://gist.github.com/138549
Xin lỗi tôi chưa thể thêm nhận xét, nhưng muốn chỉ ra rằng câu trả lời của P Daddy yêu cầu một chút tinh chỉnh:
@"(https?|ftp|file)\://[a-zA-Z0-9\.\-]+(/[a-zA-Z0-9\?\&\=;\+!'\(\)\*\-\._~%]*)*"
Tôi không thể tìm thấy bất kỳ điều gì khác ngoại trừ việc bạn đã đảo ngược thứ tự các ký tự viết hoa và chữ thường (không có chữ), và khi thực hiện, sửa lỗi đánh máy tôi đã có 'aZ' (chữ thường) a 'to upper-case 'Z'). Lần tới, nó sẽ đơn giản hơn để chỉ ra lỗi đánh máy. Tôi sẽ sửa chữa nó. –
- 1. JSTL - In url hiện tại bao gồm các chuỗi truy vấn
- 2. Remove chuỗi truy vấn thông số từ url với regex
- 3. Nhận đường dẫn/url của hành động hiện tại bao gồm chuỗi truy vấn? (Rails)
- 4. Bao gồm một URL với chuỗi truy vấn trong một tài liệu XML
- 5. Regex cho đến khi không bao gồm
- 6. Bao gồm lĩnh vực additonal trong chọn truy vấn
- 7. vấn đề URL với tomcat bao gồm tên dự án
- 8. Quy ước chuỗi truy vấn URL cho nhiều loại
- 9. Nhận url mà không chuỗi truy vấn
- 10. Xóa chuỗi truy vấn khỏi URL
- 11. Cách chuyển% trong chuỗi truy vấn URL?
- 12. jquery get chuỗi truy vấn từ URL
- 13. Nối chuỗi truy vấn vào url
- 14. chuỗi truy vấn trong url $ nguồn
- 15. Regex để đối sánh URL cụ thể với Chuỗi truy vấn
- 16. Lọc bảng "Bao gồm" trên truy vấn Khung thực thể
- 17. Bao gồm tháng còn thiếu trong Nhóm By truy vấn
- 18. Truy vấn EF với điều kiện bao gồm
- 19. Truy vấn bộ lọc Solr bao gồm NOT và OR
- 20. AngularJS: URL bao gồm và động
- 21. C++ bao gồm vấn đề
- 22. Làm cách nào để gửi URL có Chuỗi truy vấn dưới dạng Chuỗi truy vấn
- 23. Các charcters Latin được bao gồm trong JavaScript Regex
- 24. Url của Flask có giới hạn chuỗi cho chuỗi truy vấn không?
- 25. vấn đề bao gồm MATLAB "engine.h" cho C++
- 26. Thay đổi đơn truy vấn URL chuỗi giá trị
- 27. Các chỉ mục bao gồm và các truy vấn được bao gồm trong SQL Server là gì?
- 28. Vấn đề với bao gồm bảo vệ
- 29. Cách tốt nhất để phân tích chuỗi truy vấn URL
- 30. Cách chuyển hướng URL dựa trên chuỗi truy vấn?
Quy tắc là gì? Họ sẽ được mã hóa đúng cách, hoặc có thể có không gian trong chuỗi? Nếu chúng sẽ được mã hóa đúng cách về bất kỳ mẫu nào bạn đã làm trước đây nếu bạn thêm đơn giản, hãy thêm một tìm kiếm cho các ký tự không khoảng trắng vào cuối ký tự đó. – Guildencrantz