[英]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
演示版
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.