Hướng dẫn regex to exclude html tags - regex để loại trừ các thẻ html

Một người bạn đã hỏi tôi điều này và vì sự hiểu biết của tôi về Regexp vẫn chưa tốt lắm.

Làm thế nào có thể loại trừ các thẻ HTML khỏi chuỗi này?

re<br>na<br>to<br>galvao

Tôi đã thử một số regexp nhưng nó không hoạt động như tôi đang mong đợi.

(.*)<.*>(.*)

But this RegExp gets the first < and the last >.

Bất kỳ ý tưởng?

Đã hỏi ngày 7 tháng 3 năm 2014 lúc 19:57Mar 7, 2014 at 19:57

Hướng dẫn regex to exclude html tags - regex để loại trừ các thẻ html

Renato Galvonesrenato GalvonesRenato Galvones

5331 Huy hiệu vàng3 Huy hiệu bạc13 Huy hiệu đồng1 gold badge3 silver badges13 bronze badges

11

Đây là một cách nhanh chóng để làm điều đó:

var content = "re<br>na<br>to<br>galvao";
content = content.replace(/<[^>]*>/g,'');

Đã trả lời ngày 7 tháng 3 năm 2014 lúc 19:59Mar 7, 2014 at 19:59

Hướng dẫn regex to exclude html tags - regex để loại trừ các thẻ html

Bạn có thể sử dụng một trận đấu không màu xanh lá cây. Theo câu trả lời cho câu hỏi này, trong JavaScript nó là *?

Vì vậy, giả sử đây là vấn đề duy nhất với regex của bạn, nó sẽ hoạt động với

(.*?)<.*?>(.*?)

Đã trả lời ngày 7 tháng 3 năm 2014 lúc 20:08Mar 7, 2014 at 20:08

Davirdavirdavir

9025 Huy hiệu bạc7 Huy hiệu đồng5 silver badges7 bronze badges

Khớp với tất cả các thẻ HTML với regex này:

 <("[^"]*?"|'[^']*?'|[^'">])*>

Xem bản demo tại đây: http://regex101.com/r/fa0ot4

Đã trả lời ngày 7 tháng 3 năm 2014 lúc 20:02Mar 7, 2014 at 20:02

Hướng dẫn regex to exclude html tags - regex để loại trừ các thẻ html

donfuxxdonfuxxdonfuxx

11.2k6 Huy hiệu vàng43 Huy hiệu bạc75 Huy hiệu đồng6 gold badges43 silver badges75 bronze badges

Hướng dẫn regex to exclude html tags - regex để loại trừ các thẻ html

HTML là viết tắt của Ngôn ngữ đánh dấu siêu văn bản và được sử dụng để hiển thị thông tin trong trình duyệt. HTML Các biểu thức chính quy có thể được sử dụng để tìm các thẻ trong văn bản, trích xuất chúng hoặc xóa chúng. Nói chung, nó không phải là một ý tưởng tốt để phân tích HTML với Regex, nhưng đôi khi một bộ HTML được biết đến có thể được phân tích cú pháp.

Khớp với tất cả các thẻ html

Dưới đây là một regex đơn giản để xác nhận chuỗi chống lại mẫu thẻ HTML. Điều này sau đó có thể được sử dụng để xóa tất cả các thẻ và chỉ để lại văn bản.

/<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>/g;

Kiểm tra nó!

/])+>/

ĐÚNG VẬY

Sai

Nhập một văn bản vào đầu vào ở trên để xem kết quả

Mã ví dụ trong JavaScript:

// Remove all tags from a string
var htmlRegexG = /<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>/g;
'<html><body>Hello, <b>world</b>!<br /></body></html>'.replace(htmlRegexG, ''); // returns 'Hello, world';

Trích xuất văn bản giữa các thẻ nhất định

Một trong những hoạt động phổ biến nhất với HTML và Regex là trích xuất văn bản giữa các thẻ nhất định (a.k.a. Scraping). Đối với hoạt động này, biểu thức chính quy sau đây có thể được sử dụng.

var r1 = /<div>(.*?)<\/div>/g // Tag only

var r2 = /(?<=<div.*?class="some-class".*?>)(.*?)(?=<\/div>)/g // Tag+class

Kiểm tra nó!

/])+>/

ĐÚNG VẬY

Sai

Nhập một văn bản vào đầu vào ở trên để xem kết quả

Mã ví dụ trong JavaScript:

// Extract text between specific HTML tag
var htmlRegexG = /(?<=<div.*?class="some-class".*?>)(.*?)(?=<\/div>)/g;
'<html><body>Probably.<div class="some-class">Hello, world!</div><br />Today</body></html>'.match(htmlRegexG); // returns ['Hello, world'];

Trích xuất văn bản giữa các thẻ nhất định

Kiểm tra nó!

ĐÚNG VẬY

Sai

Nhập một văn bản vào đầu vào ở trên để xem kết quả

Mã ví dụ trong JavaScript:

Trích xuất văn bản giữa các thẻ nhất định