[英]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.