Hướng dẫn regex remove all html attributes - regex xóa tất cả các thuộc tính html

Trước hết, tôi sẽ khuyên bạn không nên sử dụng regexes trong tình huống này, chúng không có nghĩa là phân tích các cấu trúc hình cây như HTML.not to use regexes in this situation, they are not meant to parse tree-shaped structures like HTML.

Tuy nhiên, nếu bạn không có lựa chọn, tôi nghĩ rằng vấn đề được yêu cầu, bạn có thể sử dụng regex.

Nhìn với tôi như bạn quên không gian, điểm nhấn, v.v. Bạn có thể sử dụng thực tế là các dấu hiệu lớn hơn ____10 và nhỏ hơn

result = body.replace(regex, '<$1>')
1 không được phép làm văn bản thô.

/<\s*([a-z][a-z0-9]*)\s.*?>/gi

và gọi nó với:

result = body.replace(regex, '<$1>')

Đối với mẫu đã cho của bạn, nó tạo ra:

Ololo - text’s life
olololo
  • texttext
  • Filter the events lists by host.
  • Create graphs for separate hosts and for the groups of hosts.

bbcvbcvbcvbcvbcvbcvbcvb

cvbcbcvbcvbcvbccb

Biểu thức chính quy này loại bỏ tất cả các thuộc tính và giá trị khỏi thẻ HTML, bảo tồn chính thẻ và nội dung văn bản (nếu tìm thấy).

<([a-z][a-z0-9]*)[^>]*?(/?)>
mã thông báogiải trình
<khớp
result = body.replace(regex, '<$1>')
1 khi bắt đầu thẻ
.bắt đầu nhóm bắt giữ
result = body.replace(regex, '<$1>')
3 - tên thẻ
[A-Z]khớp với
result = body.replace(regex, '<$1>')
4 đến
result = body.replace(regex, '<$1>')
5
[A-Z0-9]*khớp với
result = body.replace(regex, '<$1>')
4 đến
result = body.replace(regex, '<$1>')
5 hoặc
result = body.replace(regex, '<$1>')
8 đến
result = body.replace(regex, '<$1>')
9 không hoặc nhiều lần
)Kết thúc nhóm bắt giữ
[^>]*?Kết hợp bất cứ thứ gì khác ngoài ____10, không hoặc nhiều lần, không có lợi (sẽ không ăn
Ololo - text’s life
olololo
  • texttext
  • Filter the events lists by host.
  • Create graphs for separate hosts and for the groups of hosts.

bbcvbcvbcvbcvbcvbcvbcvb

cvbcbcvbcvbcvbccb
1)
(/?)nắm bắt nhóm
Ololo - text’s life
olololo
  • texttext
  • Filter the events lists by host.
  • Create graphs for separate hosts and for the groups of hosts.

bbcvbcvbcvbcvbcvbcvbcvb

cvbcbcvbcvbcvbccb
2 -
Ololo - text’s life
olololo
  • texttext
  • Filter the events lists by host.
  • Create graphs for separate hosts and for the groups of hosts.

bbcvbcvbcvbcvbcvbcvbcvb

cvbcbcvbcvbcvbccb
1 nếu nó ở đó
>khớp
result = body.replace(regex, '<$1>')
0

Thêm một số trích dẫn và sử dụng văn bản thay thế

Ololo - text’s life
olololo
  • texttext
  • Filter the events lists by host.
  • Create graphs for separate hosts and for the groups of hosts.

bbcvbcvbcvbcvbcvbcvbcvb

cvbcbcvbcvbcvbccb
5 Nó sẽ loại bỏ bất kỳ văn bản nào sau tên tagname cho đến khi kết thúc thẻ
Ololo - text’s life
olololo
  • texttext
  • Filter the events lists by host.
  • Create graphs for separate hosts and for the groups of hosts.

bbcvbcvbcvbcvbcvbcvbcvb

cvbcbcvbcvbcvbccb
6 hoặc chỉ
result = body.replace(regex, '<$1>')
0.

Thí dụ

Trước

HTML chứa các thuộc tính

Ololo - text’s life
olololo
  • texttext
  • Filter the events lists by host.
  • Create graphs for separate hosts and for the groups of hosts.

bbcvbcvbcvbcvbcvbcvbcvb

cvbcbcvbcvbcvbccb
8.

hello

Sau

Thuộc tính HTML bị xóa.

hello

Ví dụ PHP

$with_attr    = '

hello

'; $without_attr = preg_replace("/<([a-z][a-z0-9]*)[^>]*?(/?)>/i",'<$1$2>', $with_attr); echo $without_attr

hello

Stackoverflow Post.

dotnet

Tỷ lệ phần trăm đầu vào susbt Hi

Chủ yếu để sử dụng trong tỷ lệ phân tích C# để phân tích thành chuỗi thành gấp đôi. Dải khoảng trắng, thay thế dấu phẩy bằng dấu thập phân, chỉ cho phép đầu vào số hợp lệ - nhiều dấu phẩy hoặc dấu thập phân sẽ không khớp, nhiều biểu tượng % sẽ không khớp, bất kỳ ký tự nào không phải 0-9, ',', '.'. ' hoặc % sẽ không khớp. Sử dụng "$ 1 $ 2. $ 3 $ 4" ...

Được gửi bởi Moravuscz - Một ngày trướcMoravuscz - a day ago

Snippet được thêm vào ngày 06 tháng 1 năm 2021 bởi MikeJan 06, 2021 by Mike

Question:

Làm thế nào để xóa tất cả các thuộc tính khỏi thẻ HTML trong PHP?

Answer:

$text = '

Clean text

'; $cleanText = preg_replace("/<([a-z][a-z0-9]*)[^>]*?(\/?)>/si",'<$1$2>', $text);

Description:

Có những trường hợp bạn không cần xóa thẻ HTML khỏi văn bản, nhưng chỉ các thuộc tính thuộc về thẻ. Trong trường hợp này, một biểu thức chính quy có thể nhanh chóng bỏ qua vấn đề.

Với

Ololo - text’s life
olololo
  • texttext
  • Filter the events lists by host.
  • Create graphs for separate hosts and for the groups of hosts.

bbcvbcvbcvbcvbcvbcvbcvb

cvbcbcvbcvbcvbccb
9, bạn có thể xóa tất cả các thuộc tính khỏi chuỗi đã cho.

Lưu ý: Trong một số trường hợp, chẳng hạn như nếu HTML không chính xác về mặt cú pháp, giải pháp này sẽ không cho kết quả chính xác. & NBSP; & nbsp; In some cases, such as if the HTML is syntactically incorrect, this solution will not give the correct result.   

Chia sẻ "Làm thế nào để xóa tất cả các thuộc tính khỏi thẻ HTML trong PHP?""How to remove all attributes from HTML tags in PHP?"

8.3. & NBSP; Xóa tất cả các thẻ kiểu XML ngoại trừ và

Vấn đề

Bạn muốn xóa tất cả các thẻ trong một chuỗi ngoại trừ

<([a-z][a-z0-9]*)[^>]*?(/?)>
0 và
<([a-z][a-z0-9]*)[^>]*?(/?)>
1.

Trong một trường hợp riêng, bạn không chỉ muốn xóa tất cả các thẻ khác ngoài

<([a-z][a-z0-9]*)[^>]*?(/?)>
0 và
<([a-z][a-z0-9]*)[^>]*?(/?)>
1, bạn còn muốn xóa các thẻ
<([a-z][a-z0-9]*)[^>]*?(/?)>
0 và
<([a-z][a-z0-9]*)[^>]*?(/?)>
1 có chứa các thuộc tính.

Dung dịch

Đây là một thiết lập hoàn hảo để đặt LookAhead tiêu cực (được giải thích trong Recipe & NBSP; 2.16) để sử dụng. Áp dụng cho vấn đề này, Lookahead tiêu cực cho phép bạn khớp với những gì trông giống như một thẻ, ngoại trừ khi một số từ nhất định xuất hiện ngay sau khi mở

result = body.replace(regex, '<$1>')
1 hoặc
<([a-z][a-z0-9]*)[^>]*?(/?)>
7. Nếu sau đó bạn thay thế tất cả các trận đấu bằng một chuỗi trống (Recipe & NBSP; 3.14 cho bạn biết cách làm thế nào), chỉ các thẻ được phê duyệt bị bỏ lại phía sau.except when certain words come immediately after the opening
result = body.replace(regex, '<$1>')
1 or
<([a-z][a-z0-9]*)[^>]*?(/?)>
7. If you then replace all matches with an empty string (Recipe 3.14 shows you how), only the approved tags are left behind.

Giải pháp 1: Thẻ khớp ngoại trừ và

________số 8
Tùy chọn Regex: Trường hợp không nhạy cảm Case insensitive
Hương vị Regex: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby .NET, Java, JavaScript, PCRE, Perl, Python, Ruby

Trong chế độ khoảng cách miễn phí:

< /?                   # Permit closing tags
(?!                    # Negative lookahead
    (?: em | strong )  #     List of tags to avoid matching
    \b                 #     Word boundary avoids partial word matches
)                      #
[a-z]                  # Tag name initial character must be a-z
(?: [^>"']             #     Any character except >, ", or '
  | "[^"]*"            #     Double-quoted attribute value
  | '[^']*'            #     Single-quoted attribute value
)*                     #
>                      #
Tùy chọn Regex: Trường hợp không nhạy cảm, khoảng cách miễn phí Case insensitive, free-spacing
Hương vị Regex: .Net, Java, PCRE, Perl, Python, Ruby .NET, Java, PCRE, Perl, Python, Ruby

Giải pháp 2: Thẻ khớp ngoại trừ và, và bất kỳ thẻ nào chứa các thuộc tính

Với một thay đổi (thay thế cho ____ ____ 38 38 bằng cách ____ ____ 39 39), bạn có thể tạo ra regex cũng phù hợp với bất kỳ thẻ

<([a-z][a-z0-9]*)[^>]*?(/?)>
0 và
<([a-z][a-z0-9]*)[^>]*?(/?)>
1 nào ...
<([a-z][a-z0-9]*)[^>]*?(/?)>
8 with
<([a-z][a-z0-9]*)[^>]*?(/?)>
9), you can make the regex also match any
<([a-z][a-z0-9]*)[^>]*?(/?)>
0 and
<([a-z][a-z0-9]*)[^>]*?(/?)>
1 tags that ...