Tôi đã chuyển sang Python khá gần đây và tôi quan tâm đến việc làm sạch một số lượng lớn các trang web (khoảng 12k) (nhưng có thể được coi là tệp văn bản dễ dàng) bằng cách xóa một số thẻ cụ thể hoặc một số mẫu chuỗi khác. Đối với điều này tôi đang sử dụng hàm re.sub (..) trong Python.Thay thế bằng cách sử dụng nhiều regex hoặc lớn hơn bằng Python
Câu hỏi của tôi là tốt hơn (từ quan điểm hiệu quả) để tạo một biểu thức chính quy lớn phù hợp với nhiều mẫu của tôi hoặc gọi hàm nhiều lần với các biểu thức chính quy nhỏ hơn và đơn giản hơn.
Để minh họa, nó là tốt hơn để sử dụng một cái gì đó giống như
re.sub(r"<[^<>]*>", content)
re.sub(r"some_other_pattern", content)
hoặc
re.sub(r"<[^<>]*>|some_other_pattern",content)
Tất nhiên, vì lợi ích của khuôn mẫu cho các mô hình trước đó là thực sự đơn giản và tôi đã không được biên dịch chúng ở đây, nhưng trong kịch bản thực tế của tôi, tôi sẽ
LE: Câu hỏi không liên quan đến bản chất HTML của các tệp, nhưng đối với hành vi của Python khi xử lý nhiều mẫu regex.
Cảm ơn!
[Cảnh báo bắt buộc về phân tích cú pháp HTML với regex] (http://stackoverflow.com/a/1732454/950912) – brc
Thực ra, như tôi đã nói, chủ yếu không phải là loại bỏ và phân tích văn bản HTML mà còn loại bỏ một số không cụ thể Các mẫu liên quan đến HTML. Câu hỏi của tôi cũng có thể được đặt chung hơn về các tập tin văn bản đơn giản và thay thế một loạt các mẫu trong chúng –
Tôi nghĩ rằng nó đi xuống như thế nào tốt bạn đang có với regex ... nếu bạn có thể làm điều đó với một sử dụng một ... Tôi có lẽ sẽ phá vỡ nó thành một số chỉ để dễ dàng hơn để phân tích cú pháp của con người ... –