Regex untuk mencocokkan tag HTML

Gunakan /<\/?[A-Za-z][A-Za-z0-9-]*(?:\s[^<>]*)?\/?>/g untuk menemukan setiap kecocokan dalam sebuah teks. Setiap contoh di bawah sudah diuji dengan pola ini, dan kamu bisa membukanya di Regex Tester dengan contoh yang sudah dimuat.

Diperbarui

/<\/?[A-Za-z][A-Za-z0-9-]*(?:\s[^<>]*)?\/?>/g
Buka di Regex Tester

Contoh teks

<p class="intro">Hello <strong>world</strong><br/></p><my-card id="x"></my-card>

7 kecocokan

<p class="intro"> <strong> </strong> <br/> </p> <my-card id="x"> </my-card>

Cara kerja pola

BagianArti
<Tanda kurung sudut pembuka
\/?Garis miring opsional untuk tag penutup
[A-Za-z][A-Za-z0-9-]*Nama tag, termasuk elemen kustom seperti my-card
(?:\s[^<>]*)?Atribut opsional
\/?>Garis miring penutup mandiri opsional dan tanda kurung penutup

Contoh kode

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];

Catatan dan batasan

Cukup untuk pencarian cepat dan penyorotan, tapi regex tidak bisa mengurai HTML dengan andal (komentar, script, atribut yang mengandung >). Gunakan DOMParser atau parser HTML sungguhan untuk keperluan penting. Untuk menghapus tag dan menyisakan teks, lihat menghapus tag HTML dengan regex.

Pertanyaan yang sering diajukan

Apa regex untuk mencocokkan tag HTML?
/<\/?[A-Za-z][A-Za-z0-9-]*(?:\s[^<>]*)?\/?>/g — ia menemukan setiap kecocokan dalam sebuah teks. Lihat tabel di atas untuk fungsi tiap bagian.
Apakah bisa dipakai di Python dan PHP?
Bisa — contoh kode di atas memakai pola yang sama dengan re di Python dan fungsi preg di PHP.
Bagaimana cara menguji regex ini?
Klik “Buka di Regex Tester” — pola, flag, dan teks contoh akan termuat otomatis, dan kecocokan akan tersorot saat kamu mengedit.