Mẫu hoạt động như thế nào
| Phần | Ý nghĩa |
|---|---|
< | Dấu ngoặc nhọn mở |
\/? | Dấu gạch chéo tùy chọn cho thẻ đóng |
[A-Za-z][A-Za-z0-9-]* | Tên thẻ, bao gồm cả phần tử tùy chỉnh như my-card |
(?:\s[^<>]*)? | Thuộc tính tùy chọn |
\/?> | Dấu gạch chéo tự đóng tùy chọn và dấu ngoặc nhọn đóng |
Ví dụ code
JavaScript
const matches = text.match(/<\/?[A-Za-z][A-Za-z0-9-]*(?:\s[^<>]*)?\/?>/g) ?? [];Python
import re
matches = re.findall(r'</?[A-Za-z][A-Za-z0-9-]*(?:\s[^<>]*)?/?>', text)PHP
preg_match_all('/<\/?[A-Za-z][A-Za-z0-9-]*(?:\s[^<>]*)?\/?>/', $text, $m);
$matches = $m[0];
Lưu ý và giới hạn
Phù hợp để tìm kiếm nhanh và tô sáng, nhưng regex không thể phân tích HTML một cách đáng tin cậy (ví dụ comment, script, hoặc thuộc tính chứa dấu >). Với những việc quan trọng, hãy dùng DOMParser hoặc một bộ phân tích HTML thật sự. Để xóa thẻ và giữ lại nội dung văn bản, xem xóa thẻ HTML bằng regex.
Kiểm tra Regex
Nhập mẫu và xem các kết quả khớp được tô sáng ngay trong văn bản thử nghiệm.