2012-07-02 31 views
29

cố gắng để viết một regex có thể tìm thấy tất cả các mẫupython regex đầu tiên/trận đấu ngắn nhất

p = "q=http://.*\.doc" in 

text = "q=http://11111.doc,q=http://22222.doc" 

khi tôi đã làm finall trên văn bản,

tôi nhận được toàn bộ sự việc, tức là q=http://11111.doc,q=http://22222.doc

nhưng không phải q=http://11111.docq=http://22222.doc

làm cách nào để khắc phục sự cố?

Trả lời

61

Đó là bởi vì * là một định lượng tham lam, cố gắng khớp nhiều nhất có thể. Làm cho nó *?:

q=http://.*?\.doc 

Thông tin thêm có thể được tìm thấy trong Regular Expression HOWTO: Greedy versus Non-greedy

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