2010-07-19 24 views
5

Hiện đang sử dụng:biểu hiện thường xuyên để kiểm tra các giao thức của URL

@"^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$ 

Làm thế nào tôi có thể làm http:// không bắt buộc nhưng nếu nó tồn tại, nó phải được viết như http://

+1

Lưu ý rằng '(0-9) *' có nghĩa là 0 hoặc không lặp lại '0-9' (nghĩa đen). Tôi nghĩ bạn muốn '[0-9] *' hoặc '\ d *'. – Gumbo

+0

Tôi thậm chí có thể nói (: [0-9] +) ?, như htt p: //example.com:/không phải là afaik hữu ích, không phải là htt p: //example.com: 1: 2: 3 :4. – Wrikken

Trả lời

9

Thay

^(ht|f)tp(s?)\:\/\/ 

by

^(?:(ht|f)tp(s?)\:\/\/)? 
+0

Mặc dù '(?:' Đã đặt một nụ cười trên khuôn mặt của tôi: không chụp thực tế 'http'/'https' vv, nhưng stull bắt 'ht' & 's'. – Wrikken

+0

@Wrikken: Vâng, tôi biết. không muốn thay đổi đánh số nhóm chụp, trong trường hợp OP dựa vào đâu đó ... – Jens

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