簡體   English   中英

使用JSoup僅除去HTML標簽,而不除去'<'和'>'標簽內的數據

[英]Using JSoup to remove only HTML tags and not data within '<' and '>' tags

我正在使用JSoup解析包含HTML標記為純文本的字符串。 例如:

String newStr = Jsoup.parse(testStrHTML).text();

它的解析效果很好,但是問題是我的Java字符串是否包含<>之間的數據(例如Hello <test@gmail.com>因此它正在刪除電子郵件地址數據。 我得到的輸出是Hello ,我期望在其中Hello <test@gmail.com>

我也嘗試過使用正則表達式

String newStr = testStrHTML.replaceAll("\\<.*?\\>", "");

但是仍然有問題。

無論如何在<>之間解析沒有自定義數據的HTML標簽

您的正則表達式

String newStr = testStrHTML.replaceAll("\\<.*?\\>", "");

完全刪除標簽。 它與<的開頭,標簽的開頭,標簽的標簽,標簽的所有屬性以及最后的>匹配。 然后將其替換為空字符串。

String newStr = testStrHTML.replaceAll("\\<.([^>]*)\\>", "\\1");

應將所有標簽替換為標簽和標簽的所有屬性。 這與您的regexp大致匹配,但是用括號內的文本替換了匹配項。

請注意,這會刪除上下文,因此它可能不是一個好的解決方案。 由於有效的html被部分保留,因此它也不會產生易於閱讀的輸出。

最好還是使用Jsoup並瀏覽DOM。

暫無
暫無

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

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