Java基于正則表達(dá)式獲取指定HTML標(biāo)簽指定屬性值的方法
本文實(shí)例講述了Java基于正則表達(dá)式獲取指定HTML標(biāo)簽指定屬性值的方法。分享給大家供大家參考,具體如下:
有時(shí)可能會(huì)有這樣的需求,從HTML頁(yè)面獲取指定標(biāo)簽的指定屬性值,可以通過(guò)第三方庫(kù)解析來(lái)獲取,但是這樣相對(duì)比較麻煩!
如果使用正則表達(dá)式,那么就變得簡(jiǎn)單了。代碼如下:
package com.mmq.regex; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @use 獲取指定HTML標(biāo)簽的指定屬性的值 * @ProjectName stuff * @Author mikan * @FullName com.mmq.regex.MatchHtmlElementAttrValue.java * @JDK 1.6.0 * @Version 1.0 */ public class MatchHtmlElementAttrValue { /** * 獲取指定HTML標(biāo)簽的指定屬性的值 * @param source 要匹配的源文本 * @param element 標(biāo)簽名稱 * @param attr 標(biāo)簽的屬性名稱 * @return 屬性值列表 */ public static List<String> match(String source, String element, String attr) { List<String> result = new ArrayList<String>(); String reg = "<" + element + "[^<>]*?\\s" + attr + "=['\"]?(.*?)['\"]?(\\s.*?)?>"; Matcher m = Pattern.compile(reg).matcher(source); while (m.find()) { String r = m.group(1); result.add(r); } return result; } public static void main(String[] args) { String source = "<a title=中國(guó)體育報(bào) href=''>aaa</a><a title='北京日?qǐng)?bào)' href=''>bbb</a>"; List<String> list = match(source, "a", "title"); System.out.println(list); } }
PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:
JavaScript正則表達(dá)式在線測(cè)試工具:
http://tools.jb51.net/regex/javascript
正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
Spring-MVC異步請(qǐng)求之Servlet異步處理
這篇文章主要介紹了Spring-MVC異步請(qǐng)求之Servlet異步處理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01java設(shè)計(jì)模式之策略模式在促銷活動(dòng)場(chǎng)景中的使用案例
這篇文章主要為大家介紹了java設(shè)計(jì)模式之策略模式在促銷活動(dòng)場(chǎng)景中案例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05如何讓Jackson JSON生成的數(shù)據(jù)包含的中文以u(píng)nicode方式編碼
這篇文章主要介紹了如何讓Jackson JSON生成的數(shù)據(jù)包含的中文以u(píng)nicode方式編碼。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12Java解析pdf格式發(fā)票的代碼實(shí)現(xiàn)
為了減少用戶工作量及誤操作的可能性,需要實(shí)現(xiàn)用戶上傳PDF格式的發(fā)票,系統(tǒng)通過(guò)解析PDF文件獲取發(fā)票內(nèi)容,并直接將其寫入表單,以下文章記錄了功能實(shí)現(xiàn)的代碼,需要的朋友可以參考下2024-08-08詳解Java多態(tài)對(duì)象的類型轉(zhuǎn)換與動(dòng)態(tài)綁定
這篇文章主要介紹了詳解Java多態(tài)對(duì)象的類型轉(zhuǎn)換與動(dòng)態(tài)綁定,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-09-09Java中小球碰撞并使用按鈕控制數(shù)量實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于Java中小球碰撞并使用按鈕控制數(shù)量的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-12-12Java橋梁設(shè)計(jì)模式優(yōu)雅地將抽象與實(shí)現(xiàn)分離
Java橋接設(shè)計(jì)模式通過(guò)將抽象和實(shí)現(xiàn)分離,使得它們可以獨(dú)立地變化,從而實(shí)現(xiàn)更靈活的代碼結(jié)構(gòu)。它是一種優(yōu)雅的設(shè)計(jì)模式,適用于需要處理多個(gè)變化因素的復(fù)雜應(yīng)用程序2023-04-04