簡體   English   中英

使用正則表達式刪除除具有特定類的html之外的所有html標簽

[英]Removing all html tags except for html with specific class using regex

我有這個測試字符串

@test@test <span class="mention">@test</span> @test2@test <span class="mention">@test</span> test@test.com Test @test.com <br> <a></a> <hr></hr> <span>dsfsfdsdfsdfs asdf </span> <span>test</span> <a>f</a>

而且我希望刪除所有標簽,同時保留其內容(除跨度外,還包括類提及的內容。)以便保留以下內容:

@test@test <span class="mention">@test</span> @test2@test <span class="mention">@test</span> test@test.com Test @test.com dsfsfdsdfsdfs asdf test f

這是我所知道的,但仍然無法正常工作

/(?!<span class="mention".*?<\/span>)(<([a-z]*)>(.[^<>]*|)<(\/[a-z]*)>)/g

任何幫助,將不勝感激!

干得好

正則表達式

/(<span(?![^>]*class="mention")[^>]*>)([^<]*)<\/span>/g

替換圖案

\2

測試字符串

@test@test <span class="mention">@test</span> @test2@test <span class="mention">@test</span> test@test.com Test @test.com <br> <a></a> <hr></hr> <span>dsfsfdsdfsdfs asdf </span> <span>test</span> <a>f</a>

結果

@test@test <span class="mention">@test</span> @test2@test <span class="mention">@test</span> test@test.com Test @test.com <br> <a></a> <hr></hr> dsfsfdsdfsdfs asdf  test <a>f</a>

演示版

在這里嘗試演示

這將刪除所有不具有指定類屬性class="mention"的span標簽


編輯

按照這里的要求,您可以剝離所有html標記,除了需要提及類的html標記

正則表達式

/(<(\w+)(?![^>]*class="mention")[^>]*>)([^<]*)<\/\2>|(?:<br>|<br\/>)/g

替換圖案

\3

結果

@test@test <span class="mention">@test</span> @test2@test <span class="mention">@test</span> test@test.com Test @test.com    dsfsfdsdfsdfs asdf  test f

演示版

在這里嘗試演示

 (?!<span class.*?</span>)(<[^/]*?>).*?(</.*?>)

這匹配您想要的所有東西。

參見演示。

http://regex101.com/r/uU0hL0/2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM