本文來自我的個人博客: java 正則表達式提取html純文本
做內容的大家都知道,從html中直接提取純文本是一個非常大的問題。現將我做的正則匹配貼上:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class TestReg { static String reg = "<[a-zA-Z]+.*?>([\s\S]*?)</[a-zA-Z]*>"; public static void main(String[] args) { // TODO Auto-generated method stub String str = "<p></p><p> 我們以Buffer類開始對java.nio包的瀏覽歷程。" + "這些類是java.nio的構造基礎。這個系列中。我們將尾隨《java NIO》書籍一起深入研究緩沖區。" + "了解各種不同的類型,並學會如何使用。</p><p> 一個Buffer對象" + "是固定數量的數據容器。其作用是一個存儲器,或者分段運輸區,在這里數據可被存儲並在之后用於檢索。
" + "</p><p> Buffer類的家譜:</p><p> " + "<img src="http://photo.jfq24.com/image/bigger/blog/server/upload/2014-07/user_2/13711406446068247.png" " + "title="2014-07-27_1527.png"></p><p> <strong>一,緩沖區基礎</strong>" + "</p><p> 1.緩沖區的屬性:</p><p> " + "容量(capacity):緩沖區可以容納的數據元素的最大數量,這一容量是在緩沖區被創建時設置的,而且永遠不能被改變</p>" + "<p> 上界(limit): 緩沖區的第一個不能被讀或寫的元素。" + "或者說。緩沖區中現存元素的計數。</p><p> 位置(position): " + "下一個要被讀或寫的元素的索引,位置會自己主動由對應的get()和put()函數更新。</p><p> " + " 標記(mark): 一個備忘位置,調用mark()來設定mark=position.調用reset()設定position=mark。" + "標記在設定前是沒有定義的(undefied)。</p><p> 這四個屬性的關系例如以下:</p"; Pattern p = Pattern.compile(reg, Pattern.MULTILINE); str = str.replace(" ", ""); Matcher m = p.matcher(str); while(m.find()) { String data = m.group(1).trim(); if(!"".equals(data)) { System.out.println(data); } } } }
版權聲明:本文博客原創文章。博客,未經同意,不得轉載。