Điều này được viết bằng Python,Biểu thức chính quy của Python được hiển thị lại, tại sao mã này không hoạt động?
import re
s='1 89059809102/30589533 IronMan 30 Santa Ana Massage table/IronMan 30 Santa Ana Massage table'
pattern='\s(\d{11})/(\d{8})'
re.match(pattern,s)
nó sẽ trả về không.
Tôi cố gắng lấy dấu ngoặc tắt,
pattern='\s\d{11}/\d{8}'
Nó vẫn trả none
.
Câu hỏi của tôi là:
- Tại sao re.match không tìm thấy bất cứ điều gì?
- Sự khác biệt có hoặc không có khung trong mẫu là gì?
@nhahtdh: ' \ s' và '\ d' không có ý nghĩa trong các chuỗi python bình thường, vì vậy trong trường hợp cụ thể này không có sự khác biệt và các dấu gạch chéo ngược không yêu cầu thoát. –
@MartijnPieters: Bạn nói đúng, nhưng chuỗi thô vẫn còn khá hữu ích để xóa sự nhầm lẫn. Ngôn ngữ khác nhau có cách xử lý khác nhau cho '' \ '' theo sau bởi một ký tự không tạo thành một chuỗi thoát. – nhahtdh
@nhahtdh: Tôi hoàn toàn đồng ý; sử dụng các chuỗi thô 'r''' cho các cụm từ thông dụng chắc chắn là một ý tưởng tuyệt vời và là phương pháp hay nhất. Chỉ trong trường hợp này OP là may mắn và không có sự khác biệt. :-) –