Tôi có văn bản sau đây:Lấy văn bản bên trong # {}
#{king} for a ##{day}, ##{fool} for a #{lifetime}
Và sau (bị hỏng) regex:
[^#]#{[a-z]+}
Tôi muốn để phù hợp với tất cả # {lời} nhưng không phải là # # {words} (Nhân đôi '#' hoạt động như thoát).
Hôm nay tôi nhận thấy rằng regex tôi đã bỏ qua từ đầu tiên (từ chối khớp # {king}, nhưng bỏ qua chính xáC## {day} và ## {fool}).
>>> regex = re.compile("[^#]#{[a-z]+}")
>>> regex.findall(string)
[u' #{lifetime}']
Bất kỳ đề xuất nào về cách cải thiện regex hiện tại để phù hợp với nhu cầu của tôi? Tôi đoán vấn đề là với [^#]
...
Giải pháp của bạn là tốt hơn, tôi quên mất tiêu cực nhìn phía sau. – grep
Tính năng thú vị? Đây có phải là python pyex cụ thể không? –
@Andrei, không có vẻ như nó không phải là python cụ thể (theo [trang web này] (http://www.regular-expressions.info/lookaround.html)), nhưng họ nói: "các hương vị như JavaScript, Ruby và Tcl làm không hỗ trợ ngoại hình, mặc dù họ hỗ trợ lookahead. " – MatToufoutu