2012-03-07 8 views

Trả lời

11

Công cụ regex của Python không hỗ trợ các công cụ này; xem §7.2.1 "Regular Expression Syntax" in the Python documentation để biết danh sách số hỗ trợ. Tuy nhiên, bạn có thể nhận được hiệu ứng tương tự bằng cách viết re.match(re.escape("bla"), "bla"); re.escape là một hàm chèn dấu gạch chéo ngược trước tất cả các ký tự đặc biệt.

Nhân tiện, bạn thường sử dụng chuỗi "thô", r"..." thay vì chỉ "...", vì các dấu gạch chéo ngược sẽ được xử lý hai lần (một lần khi chuỗi được phân tích cú pháp, và sau đó lại bằng công cụ regex), có nghĩa là bạn phải viết những thứ như \\b thay vì \b. Sử dụng r"..." ngăn chặn việc xử lý đầu tiên vượt qua, vì vậy bạn chỉ có thể viết \b.

+1

Cảm ơn. Tôi hy vọng sẽ nhận được một ngoại lệ khi chèn một regex không được hỗ trợ. Oh chờ đã, đây là python ... – wafwaf

+0

Bạn được chào đón. Và tuyệt vời . . . Tôi thấy lý do tại sao mọi người yêu Python rất nhiều, nhưng. . . – ruakh

+0

@ruakh Nó không phải dành cho các regex, tin tôi đi. :) – tchrist

1

Thật không may, Python không hỗ trợ các chuỗi thoát \Q\E thoát. Bạn chỉ cần tự mình thoát khỏi mọi thứ.

+0

-1: có chuỗi thô và re.escape –