在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ 關于java字符串替換的難題?

關于java字符串替換的難題?

需求就是替換HTML文檔中的敏感詞。但是只想替換純文本,而有些html標簽中含有敏感詞,我是不想替換的。比如img標簽的src中含有敏感詞,如果把src中的敏感詞替換那么圖片就顯示不了了。

比如 <p>今天天氣不錯abc</p><img src="abc.jpg"/> 我想替換abc為*

那么替換為<p>今天天氣不錯*</p><img src="abc.jpg"/>

如果我單純的使用Java的String.replaceAll("abc","*")

那么就會得到 <p>今天天氣不錯*</p>
<img src="*.jpg/>
,這樣圖片就加載不出來了,這并不是我想要的。

想了挺久,也想了正則,各位大佬有沒有什么好方法???

回答
編輯回答
來守候

兩種方法:

一:正則

(?!<[^>]*)[a][b][c](?![^<]*>)

圖片描述

運行結果:
圖片描述

二:Jsoup 解析 HTML ,寫選擇器遍歷判斷

我更傾向于用第二種方法,因為正則很難維護…… 如果以后需要替換別的,還要再研究

2018年8月29日 20:49
編輯回答
赱丅呿

為何非要在頁面級別用正則替換?在存庫的時候就替換掉不好嗎?或者在取出來渲染到頁面模板的時候做替換不好嗎?為何非要糾結在html代碼中進行替換?

2017年5月20日 21:39
編輯回答
司令

簡單一點的就是上面大佬說的那種做法,不想這樣的話就直接截取<img前面的字符串,然后替換在拼接回去

2017年11月26日 06:40