Java正則表達(dá)式如何匹配特定html標(biāo)簽內(nèi)的內(nèi)容
如題:
使用正則表達(dá)式,怎么匹配特定html標(biāo)簽內(nèi)的內(nèi)容。
比如,對(duì)于如下文本串:
... ignored content
prefix content
<html>inner content</html>
postfix content
... ignored content
我們要提取出<html>標(biāo)簽內(nèi)的內(nèi)容: inner content(這里的html標(biāo)簽可以換成任何其它的標(biāo)簽,比如<p>標(biāo)簽)
這里引入正則表達(dá)式的group概念:詳細(xì)點(diǎn)擊文章查看
比如:對(duì)于一個(gè)正則表達(dá)式( ( A ) ( B ( C ) ) )
- group 1為:( ( A ) ( B ( C ) ) )
- group 2為:( A )
- group 3為:( B ( C ) )
- group 4為:( C )
這樣,我們就能夠構(gòu)造出如下的正則表達(dá)式:.*(<(html>)(.*)</\2).*
此表達(dá)式的group概念為:
- group 1: (<(html>)(.*)</\2)
- group 2: (html>)
- group 3: (.*)
顯然我們要求的就是group3的內(nèi)容。
注意:\2是對(duì)group2的引用,也就是html>
該正則表達(dá)式也可以寫(xiě)成: .*(<(html>)(.*)</(html>)).*
化簡(jiǎn)其實(shí)就是.*<html>(.*)</html>.*
代碼實(shí)現(xiàn)為:
String p = ".*(<(html>)(.*)</\\2).*"; String m = "prefix<html>午休abc</html>postfix"; System.out.println("Pattern: " + p); System.out.println("String to be test: " + m); Pattern pattern = Pattern.compile(p); Matcher matcher = pattern.matcher(m); if(matcher.matches()) { System.out.println("Matched String: " + matcher.group(3)); } else { System.out.println("So sad, not matching anything!"); }
總結(jié)
到此這篇關(guān)于Java正則表達(dá)式如何匹配特定html標(biāo)簽內(nèi)容的文章就介紹到這了,更多相關(guān)Java正則表達(dá)式匹配html標(biāo)簽內(nèi)容內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring AOP 對(duì)象內(nèi)部方法間的嵌套調(diào)用方式
這篇文章主要介紹了Spring AOP 對(duì)象內(nèi)部方法間的嵌套調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08Spring Boot構(gòu)建優(yōu)雅的RESTful接口過(guò)程詳解
這篇文章主要介紹了spring boot構(gòu)建優(yōu)雅的RESTful接口過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Java中的CountDownLatch、CyclicBarrier和semaphore實(shí)現(xiàn)原理解讀
這篇文章主要介紹了Java中的CountDownLatch、CyclicBarrier和semaphore實(shí)現(xiàn)原理詳解,CountDownLatch中調(diào)用await方法線程需要等待所有調(diào)用countDown方法的線程執(zhí)行,這就很適合一個(gè)業(yè)務(wù)需要一些準(zhǔn)備條件,等準(zhǔn)備條件準(zhǔn)備好之后再繼續(xù)執(zhí)行,需要的朋友可以參考下2023-12-12Java TreeSet類(lèi)的簡(jiǎn)單理解和使用
這篇文章主要介紹了Java TreeSet類(lèi)的簡(jiǎn)單理解和使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02spring boot環(huán)境抽象的實(shí)現(xiàn)方法
在實(shí)際開(kāi)發(fā)中,開(kāi)發(fā)人員在編寫(xiě)springboot的時(shí)候通常要在本地環(huán)境測(cè)試然后再部署到Production環(huán)境,這兩種環(huán)境一般來(lái)講是不同的,最主要的區(qū)別就是數(shù)據(jù)源的不同。本文主要介紹了這兩種,感興趣的可以了解一下2019-04-04Java序列化常見(jiàn)實(shí)現(xiàn)方法代碼實(shí)例
這篇文章主要介紹了Java序列化常見(jiàn)實(shí)現(xiàn)方法代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11關(guān)于@PostConstruct、afterPropertiesSet和init-method的執(zhí)行順序
這篇文章主要介紹了關(guān)于@PostConstruct、afterPropertiesSet和init-method的執(zhí)行順序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09Java JDK17沒(méi)有源碼的問(wèn)題及解決
這篇文章主要介紹了Java JDK17沒(méi)有源碼的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11