01/10/2018, 10:22

Raw string trong regex object trong Python

Các cao thủ python cho mình hỏi: Tại sao ta phải thường sử dụng raw string khi tạo REGEX OBJECT
ví dụ: phoneNumRegex = re.compile(r'ddd-ddd-dddd'). Nhưng ta không cần dùng vẫn được
ví dụ: phoneNumRegex = re.compile('ddd-ddd-dddd').

Henry viết 12:23 ngày 01/10/2018

Tên gọi nói lên tất cả.
xem ví dụ sau nếu chưa hiểu mình sẽ giải thích thêm

>>> print('\n')


>>> print(r'\n')
\n
ĐẸP TRAI viết 12:24 ngày 01/10/2018

ok hiểu nhưng tại sao phải dùng nó

ĐẸP TRAI viết 12:28 ngày 01/10/2018

tại sao phải dùng nó trong khi ta có the không dùng nó

Henry viết 12:24 ngày 01/10/2018

Đôi khi có một số gọi là rules, Lí do phải dùng raw string là để không nhầm lẫn escape sequence. Và may mắn thay \d không phải rơi vào trường hợp escape sequence. Đoạn của bạn còn rất là ngắn chỉ đơn giản là kiểm tra số điện thoại thôi (hình như là boring stuff) nhưng khi bạn có các đoạn regular expression phức tạp hơn. Như là kiểm tra đường dẫn thư mục chẳng hạn (nếu đọc tiếp sẽ có phần đó, khá hay). Thì bên Windows C:\User... Liệu bạn có đoán được lần nào thư mục sẽ bắt đầu bằng kí tự n để rồi nối với \n thành một cái hoàn toàn khác. Cho nên luôn phải raw-string như một thói quen. Mà cái này cũng tùy vào bạn thôi, và cũng tùy người đọc code nữa, có người cho đó là ẩu, cũng có người không.
Edit: Tùy vào tình huống mà ứng biết

Bài liên quan
0