java perl5compiler,Java中正则表达式使用方法详解(四)
3.2 HTML處理實例一
下面一個任務是分析HTML頁面內FONT標記的所有屬性。HTML頁面內典型的FONT標記如下所示
程序將按照如下形式,輸出每一個FONT標記的屬性
在這種情況下,我建議你使用兩個正則表達式。第一個如圖十一所示,它從字體標記提取出“"face="Arial, Serif" size="+2" color="red"”。
圖十一:匹配FONT標記的所有屬性
第二個正則表達式如圖十二所示,它把各個屬性分割成名字-值對。
圖十二:匹配單個屬性,并把它分割成名字-值對
分割結果為
現在我們來看看完成這個任務的Java代碼。首先創建兩個正則表達式字符串,用Perl5Compiler把它們編譯成Pattern對象。編譯正則表達式的時候,指定Perl5Compiler.CASE_INSENSITIVE_MASK選項,使得匹配操作不區分大小寫。|||
接下來,創建一個執行匹配操作的Perl5Matcher對象。
假設有一個String類型的變量html,它代表了HTML文件中的一行內容。如果html字符串包含FONT標記,匹配器將返回true.此時,你可以用匹配器對象返回的MatchResult對象獲得第一個組,它包含了FONT的所有屬性
接下來創建一個PatternMatcherInput對象。這個對象允許你從最后一次匹配的位置開始繼續進行匹配操作,因此,它很適合于提取FONT標記內屬性的名字-值對。創建PatternMatcherInput對象,以參數形式傳入待匹配的字符串。然后,用匹配器實例提取出每一個FONT的屬性。這通過指定PatternMatcherInput對象(而不是字符串對象)為參數,反復地調用PatternMatcher對象的contains()方法完成。PatternMatcherInput對象之中的每一次迭代將把它內部的指針向前移動,下一次檢測將從前一次匹配位置的后面開始。
本例的輸出結果
總結
以上是生活随笔為你收集整理的java perl5compiler,Java中正则表达式使用方法详解(四)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php把1拆分成三份,【php】位运算如
- 下一篇: Java日期工具类