- Ví dụ dòng 1
- Ví dụ dòng 2
- Ví dụ dòng 3
- Ví dụ dòng a
- Ví dụ dòng 5
Đôi khi, khi chúng tôi cố gắng lưu trữ một chuỗi trong cơ sở dữ liệu, nó sẽ được lưu trữ cùng với các thẻ HTML. Tuy nhiên, một số trang web nhất định cần hiển thị chuỗi ở định dạng thô mà không có bất kỳ thẻ HTML nào từ cơ sở dữ liệu. Vì vậy, trong hướng dẫn này, chúng ta sẽ tìm hiểu các phương pháp khác nhau về cách xóa thẻ HTML khỏi chuỗi trong Python
Xóa thẻ HTML khỏi chuỗi bằng regex trong Python
Biểu thức chính quy là sự kết hợp của các ký tự sẽ đại diện cho một mẫu tìm kiếm. Trong mô-đun regex của python, chúng tôi sử dụng hàm sub(), hàm này sẽ thay thế chuỗi khớp với một mẫu được chỉ định bằng một chuỗi khác. Mã để xóa chuỗi HTML khỏi chuỗi mà không sử dụng mô-đun XML được đề cập bên dưới. XML là ngôn ngữ đánh dấu được sử dụng để lưu trữ và vận chuyển một lượng lớn dữ liệu hoặc thông tin. Python có một số mô-đun dựng sẵn có thể giúp chúng tôi phân tích cú pháp các tài liệu XML. Các tài liệu XML có các đơn vị riêng lẻ được gọi là các phần tử được xác định trong thẻ mở và thẻ đóng(). Bất cứ thứ gì nằm giữa thẻ mở và thẻ đóng là nội dung của phần tử. Một phần tử có thể bao gồm nhiều phần tử con gọi là phần tử con. Sử dụng module ElementTree trong python chúng ta có thể dễ dàng thao tác với các tài liệu XML này
Sử dụng phương pháp re.sub() để xóa các thẻ HTML khỏi một chuỗi, e. g. result = re.sub(r'<.*?>', '', html_string). Phương thức re.sub() sẽ xóa tất cả các thẻ HTML trong chuỗi bằng cách thay thế chúng bằng các chuỗi rỗng
Mẫu mã sử dụng biểu thức chính quy để tách các thẻ HTML khỏi chuỗi
Phương thức trả về một chuỗi mới thu được bằng cách thay thế các lần xuất hiện của mẫu bằng thay thế được cung cấp
Nếu mẫu không được tìm thấy, chuỗi được trả về nguyên trạng
Đối số đầu tiên chúng ta truyền cho phương thức re.sub() là một biểu thức chính quy
Dấu ngoặc < và > khớp với ký tự mở và đóng của thẻ HTML
Dấu chấm . khớp với bất kỳ ký tự nào ngoại trừ ký tự xuống dòng
Dấu hoa thị * khớp với 0 hoặc nhiều lần lặp lại của ký tự trước đó (bất kỳ ký tự nào)
Thêm một dấu chấm hỏi ? sau vòng loại làm cho nó thực hiện một trận đấu không tham lam hoặc tối thiểu
Ví dụ: sử dụng biểu thức chính quy <.*?> sẽ chỉ khớp với result = re.sub(r'<.*?>', '', html_string)0
Về tổng thể, biểu thức chính quy khớp với tất cả các thẻ HTML mở và đóng
Ngoài ra, bạn có thể sử dụng lớp result = re.sub(r'<.*?>', '', html_string)1
Xóa các thẻ HTML khỏi Chuỗi bằng HTMLParser trong Python
Để xóa các thẻ HTML khỏi một chuỗi trong Python
- Mở rộng từ lớp result = re.sub(r'<.*?>', '', html_string)1 từ mô-đun result = re.sub(r'<.*?>', '', html_string)3
- Triển khai phương pháp result = re.sub(r'<.*?>', '', html_string)4 để lấy dữ liệu giữa các thẻ HTML
- Lưu trữ dữ liệu trong một danh sách trên thể hiện của lớp
- Gọi phương thức result = re.sub(r'<.*?>', '', html_string)5 trên một thể hiện của lớp
Hàm result = re.sub(r'<.*?>', '', html_string)6 lấy một chuỗi và tách các thẻ HTML khỏi chuỗi được cung cấp
Chúng tôi mở rộng từ lớp result = re.sub(r'<.*?>', '', html_string)1. Đoạn mã rất giống với mô-đun result = re.sub(r'<.*?>', '', html_string)8
Lớp result = re.sub(r'<.*?>', '', html_string)1 được sử dụng để tìm các thẻ và các chức năng xử lý cuộc gọi và đánh dấu khác
Dữ liệu giữa các thẻ HTML được chuyển từ trình phân tích cú pháp sang lớp dẫn xuất bằng cách gọi ____________0
Khi re.sub()1 được đặt thành re.sub()2, các tham chiếu ký tự sẽ tự động được chuyển đổi thành ký tự Unicode tương ứng
Nếu re.sub()1 được đặt thành re.sub()4, các tham chiếu ký tự được chuyển bằng cách gọi các phương thức re.sub()5 hoặc re.sub()6
Phương thức result = re.sub(r'<.*?>', '', html_string)5 sử dụng phương thức re.sub()8 để nối danh sách các chuỗi không có dấu phân cách
Phương thức lấy một iterable làm đối số và trả về một chuỗi là chuỗi nối của các chuỗi trong iterable
Hàm re.sub()9 lấy một chuỗi chứa các thẻ HTML và trả về một chuỗi mới trong đó tất cả các thẻ HTML mở và đóng đã bị xóa
Hàm khởi tạo lớp và cung cấp chuỗi chứa các thẻ html cho trình phân tích cú pháp
Bước tiếp theo là gọi phương thức re.sub()0 trên phiên bản để xử lý mọi dữ liệu được lưu vào bộ đệm
Cuối cùng, chúng ta gọi phương thức result = re.sub(r'<.*?>', '', html_string)5 để nối danh sách các chuỗi thành một chuỗi không chứa bất kỳ thẻ HTML nào