精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java處理字符串搜索嵌套結構的方法

開發 后端
在用java分析HTML文本時,如果要取出有嵌套結構的節點之間的內容,不能直接用正則表達式來處理,因為java所帶的正則表達式不支持嵌套結構的描述,雖然Perl、.Net、PHP可以支持。

在用Java分析HTML文本時,如果要取出有嵌套結構的節點之間的內容,不能直接用正則表達式來處理,因為Java所帶的正則表達式不支持嵌套結構的描述,雖然Perl、.Net、PHP可以支持。這時可以先用正則表達式找出節點在字符串中的位置,然后對節點進行匹配處理,取出匹配節點之間的內容,實現對嵌套結構的處理。

例如要從

  1. <pre name="code" class="java">data=<div><div>abcd<div></div><form>
  2. <input type='button' value='submit'/></form></div></div><div>1234</div> 

中取出<div></div>之間的內容,希望返回兩個字符串

  1. <pre name="code" class="java"><div>abcd<div></div><form>
  2. <input type='button' value='submit'/></form></div><pre name="code" class="html">和1234。 

源代碼如下:

為了記錄節點在字符串中的值和位置,先定義一個類,保存這些信息:

  1. public class Tag {  
  2.       
  3.     public Tag(String value, int beginPos, int endPos) {  
  4.         super();  
  5.         this.value = value;  
  6.         this.beginPos = beginPos;  
  7.         this.endPos = endPos;  
  8.     }  
  9.     private String value;  
  10.     private int beginPos;  
  11.     private int endPos;  
  12.     public String getValue() {  
  13.         return value;  
  14.     }  
  15.     public void setValue(String value) {  
  16.         this.value = value;  
  17.     }  
  18.     public int getBeginPos() {  
  19.         return beginPos;  
  20.     }  
  21.     public void setBeginPos(int beginPos) {  
  22.         this.beginPos = beginPos;  
  23.     }  
  24.     public int getEndPos() {  
  25.         return endPos;  
  26.     }  
  27.     public void setEndPos(int endPos) {  
  28.         this.endPos = endPos;  
  29.     }  
  30.       

從字符串中獲取節點之間內容的函數如下:

  1.        /**  
  2.  * 獲取字符串之間的內容,如果包含嵌套,則返回最外層嵌套內容  
  3.  *   
  4.  * @param data        
  5.  * @param stag      起始節點串  
  6.  * @param etag      結束節點串  
  7.  * @return  
  8.  */ 
  9. public List<String> get(String data,String stag, String etag){  
  10.     // 存放起始節點,用于和結束節點匹配  
  11.     Stack<Tag> work = new Stack<Tag>();  
  12.     // 保存所有起始和結束節點  
  13.     List<Tag> allTags = new ArrayList<Tag>();  
  14.       
  15.     // 在元字符前加轉義符  
  16.     String nstag = stag.replaceAll("([\\*\\.\\+\\(\\]\\[\\?\\{\\}\\^\\$\\|\\\\])""\\\\$1");  
  17.     String netag = etag.replaceAll("([\\*\\.\\+\\(\\]\\[\\?\\{\\}\\^\\$\\|\\\\])""\\\\$1");  
  18.       
  19.     String reg = "((?:"+nstag+")|(?:"+netag+"))";  
  20.       
  21.     Pattern p = Pattern.compile(reg, Pattern.CASE_INSENSITIVE|Pattern.MULTILINE);  
  22.       
  23.     Matcher m = p.matcher(data);  
  24.       
  25.     while(m.find()){  
  26.         Tag tag = new Tag(m.group(0),m.start(),m.end());  
  27.         allTags.add(tag);  
  28.     }  
  29.     // 保存開始結束節點之間的內容,不含節點  
  30.     List<String> result = new ArrayList<String>();  
  31.       
  32.     for(Tag t : allTags){  
  33.         if (stag.equalsIgnoreCase(t.getValue())){  
  34.             work.push(t);  
  35.         }else if(etag.equalsIgnoreCase(t.getValue())){  
  36.             // 如果棧已空,則表示不匹配  
  37.             if (work.empty()){  
  38.                 throw new RuntimeException("pos "+t.getBeginPos()+" tag not match start tag.");  
  39.             }  
  40.             Tag otag = work.pop();  
  41.             // 如果棧為空,則匹配  
  42.             if (work.empty()){  
  43.                 String sub = data.substring(otag.getEndPos(), t.getBeginPos());  
  44.                 result.add(sub);  
  45.             }  
  46.         }  
  47.           
  48.     }  
  49.       
  50.     // 如果此時棧不空,則有不匹配發生  
  51.     if (!work.empty()){  
  52.         Tag t = work.pop();  
  53.         throw new RuntimeException("tag "+t.getValue()+ "not match.");  
  54.     }  
  55.       
  56.     return result;  
  57.       

函數返回節點之間內容串組成的列表。

例如 調用 get(data,"<div>", "</div>") 返回含有兩個元素的列表,元素分別為

  1. <div>abcd<div></div><form><input type='button' value='>'/></form></div>, 1234 

需要注意的是如果節點含有正則表達式的元字符,需要在元字符前加轉義符\\,源代碼中第16,17行實現此功能。

原文鏈接:http://blog.csdn.net/indexchen/article/details/7236754

【編輯推薦】

  1. Java編程:常見問題匯總
  2. Java迷題:等于,還是不等于?
  3. Java數據庫連接代碼集合
  4. Java編程語言的認識誤區
  5. Java Thread的概述與總結
責任編輯:林師授 來源: indexchen的博客
相關推薦

2009-11-26 16:26:32

PHP字符串mbstr

2010-11-26 09:51:54

MySQL字符串

2011-07-12 16:14:17

2010-06-04 14:59:06

MySQL數據庫

2010-06-21 09:48:43

2009-08-07 14:22:56

C#字符串搜索

2009-06-30 14:16:37

截取字符串

2021-05-18 09:08:18

字符串子串對象

2025-06-30 02:11:00

2022-09-26 00:00:02

字符串數據結構

2010-08-04 11:23:15

Flex字符串

2010-04-27 12:26:21

Unix字符串

2020-09-03 10:13:49

JavaScript字符串pad

2010-07-14 16:35:52

Perl字符串處理函數

2023-10-18 07:55:41

Python字符串

2020-05-12 08:53:15

JavaScript字符串處理庫

2019-08-12 14:25:09

編程算法PythonJavaScript

2021-08-26 11:41:50

字符串String.jsVoca

2010-11-26 11:20:31

MySQL字符串處理函

2021-03-08 08:23:24

Java字符串截取
點贊
收藏

51CTO技術棧公眾號

无码人妻丰满熟妇精品区| 精品少妇一区二区三区免费观| 日韩子在线观看| 国产一区在线不卡| 久久久中文字幕| 亚洲国产无码精品| 亚洲午夜国产成人| 亚洲成a人v欧美综合天堂| 欧美精品亚洲| 国产黄色美女视频| 久久午夜激情| 欧美激情视频三区| 免费在线观看a视频| 中文字幕视频精品一区二区三区| 在线区一区二视频| 日本a在线天堂| 福利视频在线播放| 成人av在线资源网| 国产主播精品在线| 精品人妻一区二区色欲产成人| 国产精品久久久久久久久久10秀 | 美女黄页在线观看| 亚洲午夜av| 久久天天躁狠狠躁夜夜躁| 亚洲av成人片无码| 亚洲高清影院| 91高清视频免费看| www.av毛片| 激情在线小视频| 日本一二三四高清不卡| 国产自产在线视频一区| 精品久久久中文字幕人妻| 日本aⅴ免费视频一区二区三区 | 亚洲精品人成| 日本国产在线| 成人免费毛片片v| 亚洲一区二区三区777| 国产情侣免费视频| 媚黑女一区二区| 97涩涩爰在线观看亚洲| 久久伊人成人网| 欧美99在线视频观看| 精品视频黄色| 日本精品视频一区二区| 国产美女主播在线| 菠萝菠萝蜜在线视频免费观看| 欧美国产1区2区| 欧美日韩在线高清| 在线观看xxx| 成人av网站免费| julia一区二区中文久久94| 一级二级三级视频| 麻豆精品一区二区av白丝在线| 国产91在线播放九色快色| www.av麻豆| aa亚洲婷婷| 91爱爱小视频k| 日本va欧美va国产激情| 99精品视频免费| 亚州欧美日韩中文视频| 国产手机在线视频| 1024日韩| 91国产在线精品| 久久99精品波多结衣一区| 亚洲日产国产精品| 欧美一级片一区| 亚洲熟女综合色一区二区三区| 亚洲成色精品| 51色欧美片视频在线观看| 五月天综合激情网| 久久九九电影| 国产久一一精品| 国产免费一区二区三区最新不卡 | 亚洲国产欧美在线人成| 特级西西人体www高清大胆| 色爱综合区网| 亚洲不卡一区二区三区| 国产黄视频在线| 国产精品久久久久av电视剧| 欧美日韩一区二区三区四区| 久久久久久蜜桃一区二区| www.久久热| 精品对白一区国产伦| 亚洲一区二区三区四区av| 日韩免费电影在线观看| 国产一区二区三区视频| 日本一二三区在线观看| 黄页网站一区| 国产精品69av| 国产美女三级无套内谢| aa级大片欧美| 亚洲激情一区二区| 欧美人与动牲性行为| 欧美日韩一区二区三区| 成人性生交免费看| 亚洲一区网址| 亚洲视频第一页| 国产高潮流白浆| 亚洲综合国产| 亚洲一区二区在线| 青梅竹马是消防员在线| 亚洲日本va午夜在线影院| 黄色一级视频在线播放| 国产精品亚洲成在人线| 精品日韩99亚洲| 亚洲高潮女人毛茸茸| 欧美日韩国产色综合一二三四| 欧美一级电影免费在线观看| 国产免费无遮挡| 成人av免费在线| 最新国产精品久久| 黄色亚洲网站| 日韩精品一区二区三区四区| 日本成人免费视频| 亚洲第一黄色| 亚洲一区二区久久久久久| 男女视频在线观看免费| 亚洲自拍与偷拍| 色免费在线视频| 偷拍精品福利视频导航| 欧美成人精品影院| 中文字幕第99页| 91在线视频播放| 成人区一区二区| 99久久婷婷国产综合精品首页| 亚洲成人xxx| 亚洲综合视频网站| 日韩不卡一二三区| 麻豆视频成人| av在线理伦电影| 日韩欧美国产午夜精品| 人妻无码一区二区三区免费| 翔田千里一区二区| 精品日本一区二区三区在线观看| 在线中文免费视频| 欧美福利电影网| 91成人精品一区二区| 久久永久免费| 久久综合九色综合久99| 黄色视屏在线免费观看| 欧美电影在线免费观看| 91成人精品一区二区| 日日夜夜一区二区| 久久综合伊人77777麻豆| 成人在线黄色电影| 精品久久国产97色综合| 强乱中文字幕av一区乱码| 国产一区二区三区四区在线观看| 亚洲视频sss| 香蕉久久一区| 久久久国产精品视频| 亚洲一级av毛片| 中文字幕亚洲综合久久菠萝蜜| 我要看一级黄色大片| 精品国产美女| 国产精品夜色7777狼人| 性开放的欧美大片| 在线电影一区二区三区| 九九精品视频免费| 国产精品一区二区三区网站| 成人av在线播放观看| 爱爱精品视频| 97在线精品视频| 免费理论片在线观看播放老| 在线视频一区二区三区| 精品少妇一区二区三区密爱| 国产乱子伦视频一区二区三区| 国产在线视频综合| 欧美一区自拍| 国产精品高潮呻吟久久av野狼| av男人的天堂在线| 4438x成人网最大色成网站| 放荡的美妇在线播放| 国产91综合一区在线观看| 2018国产在线| 精品日韩毛片| 亚洲一区二区三区香蕉| 极品av在线| 中文字幕亚洲无线码在线一区| 国产又粗又猛又色又| 亚洲图片欧美一区| 91中文字幕永久在线| 久久国产精品色| 国产尤物av一区二区三区| 欧亚精品一区| 国产精品专区一| a级影片在线观看| 日韩精品免费在线视频| 欧美超碰在线观看| 亚洲免费观看视频| 97人妻精品一区二区三区免| 蜜臀99久久精品久久久久久软件| 97超碰在线视| 欧美极品在线观看| 91精品国产91久久久久青草| 中文字幕21页在线看| 日韩亚洲综合在线| 人妻一区二区三区| 在线观看视频一区二区欧美日韩| 91香蕉一区二区三区在线观看| 成人黄色小视频在线观看| 国产区二区三区| 亚洲激情自拍| 懂色av一区二区三区四区五区| 色88888久久久久久影院| 成人国产精品一区二区| 捆绑调教日本一区二区三区| 久久精品国产69国产精品亚洲| 亚洲日本香蕉视频| 欧美一区二区女人| 免费无码国产精品| 亚洲h在线观看| 在线看的片片片免费| 久久久久久久久99精品| 欧美激情一区二区三区p站| 蜜桃av一区二区在线观看| 国产精品国产亚洲精品看不卡| 97精品视频在线看| 欧美日本韩国在线| 女同久久另类99精品国产| 亚洲japanese制服美女| 欧洲亚洲精品| 国产国产精品人在线视| 免费看男女www网站入口在线| 久久躁日日躁aaaaxxxx| 成年人在线看| 亚洲欧美国产一本综合首页| 色欲av伊人久久大香线蕉影院| 91精品国产综合久久久久久久久久 | 国产成人影院| 精品国产一区二区三区日日嗨| 国产精品高清一区二区| 国产男人精品视频| 怡红院成人在线| 欧美在线视频免费播放| 9999精品成人免费毛片在线看| 欧美福利视频在线| 69xxx在线| 久久亚洲国产精品成人av秋霞| 天堂а√在线资源在线| 中文字幕免费国产精品| 国产精品视频二区三区| 日韩电影在线观看永久视频免费网站| 亚洲国产综合一区| 欧美草草影院在线视频| 亚洲福利在线观看视频| 日韩三级av在线播放| 国产黄色一区二区| 欧美成人免费网站| 亚洲国产精彩视频| 精品粉嫩超白一线天av| 色综合视频在线| 日韩精品视频在线免费观看| 日夜干在线视频| 亚洲视频在线观看免费| 国产乱理伦片a级在线观看| 亚洲色图综合久久| h视频网站在线观看| 中文字幕无线精品亚洲乱码一区 | 亚洲精品免费在线观看视频| 精品久久一区二区三区| 空姐吹箫视频大全| 日韩精品极品在线观看| 国产在线高清| 日韩中文字幕第一页| 国产成人高清精品| 欧美成在线视频| 国内高清免费在线视频| 久久久久久午夜| www.com.cn成人| 国产精品热视频| 国产美女精品视频免费播放软件| 大波视频国产精品久久| 欧美一区二区三区红桃小说| 日韩三级电影免费观看| 天天操综合网| 亚洲国产成人精品无码区99| 美女诱惑一区| 三日本三级少妇三级99| 成人短视频下载| 中文字幕被公侵犯的漂亮人妻| 中文字幕一区免费在线观看| 国产第一页第二页| 色先锋资源久久综合| 一区二区三区午夜| 亚洲国产日韩精品在线| 九九在线视频| 九九视频这里只有精品| 新版的欧美在线视频| 国产精品一区专区欧美日韩| 一区二区三区四区视频免费观看 | 头脑特工队2免费完整版在线观看| 亚洲人成在线播放| 在线中文字幕视频观看| 日韩美女写真福利在线观看| 99久久这里有精品| 久久草.com| 久久精品亚洲欧美日韩精品中文字幕| 欧洲精品一区二区三区久久| 蜜臀av亚洲一区中文字幕| 久久久老熟女一区二区三区91| 国产精品天天看| jizz国产免费| 91麻豆精品国产91久久久更新时间 | 欧美日韩在线播放一区二区| 欧美久久九九| 搡女人真爽免费午夜网站| 丁香五精品蜜臀久久久久99网站 | 26uuu另类亚洲欧美日本一| 日韩成人一区| 日本高清不卡三区| 亚洲韩日在线| 日本成人在线免费观看| 日本一区二区三区dvd视频在线| 99免费在线观看| 日韩午夜中文字幕| 在线日本视频| 日本亚洲欧美成人| 国产日韩三级| 成人av在线播放观看| 久久99国产精品免费| 自拍偷拍中文字幕| 午夜精品一区二区三区免费视频 | 亚洲欧美日韩天堂| heyzo高清在线| 91九色露脸| 国产精品久久久久久久免费观看| 日韩一级免费在线观看| gogo大胆日本视频一区| 国产极品美女高潮无套嗷嗷叫酒店| 欧美群妇大交群的观看方式| 国产一区电影| 日本久久亚洲电影| 麻豆精品av| 亚洲 自拍 另类小说综合图区| 国产一区二区免费在线| 秋霞欧美一区二区三区视频免费 | 亚洲风情第一页| 欧美成人国产va精品日本一级| 欧美亚洲黄色| 亚洲一区二区三区在线观看视频| 日韩国产精品久久| 无码 人妻 在线 视频| 日韩欧美黄色动漫| 丝袜视频国产在线播放| 91国语精品自产拍在线观看性色| 波多野结衣在线一区二区 | 欧美精品亚洲一区二区在线播放| 成人18在线| 国产免费亚洲高清| 日韩欧美中文| 午夜免费一级片| 一区二区三区在线免费观看| www视频在线| 高清视频欧美一级| 日韩欧美美女在线观看| 欧美亚洲国产成人| 久久久久久免费| 成人小视频在线播放| 最近2019好看的中文字幕免费| 国产精品传媒麻豆hd| 国产精品av免费| 国产精品91xxx| 日韩黄色精品视频| 亚洲欧美综合另类中字| 97人人做人人爽香蕉精品| 在线观看日韩羞羞视频| 国产九九视频一区二区三区| 清纯粉嫩极品夜夜嗨av| 亚洲成成品网站| 亚洲第一影院| 午夜在线视频免费观看| 国产成人av电影在线| 日韩黄色一级大片| 一区二区三区视频在线 | 韩国一区二区三区美女美女秀| 亚洲一区中文| 91成人精品一区二区| 日韩视频永久免费| 91久久国产综合久久91猫猫| 亚洲人成人77777线观看| 国产精品综合在线视频| 国产视频91在线| 这里只有精品视频| 在线精品视频一区| 男人天堂网视频| 亚洲欧洲另类国产综合| 亚洲欧美另类日韩| 国产成人精品一区| 91精品啪在线观看国产81旧版 | 精品国产午夜肉伦伦影院| 好男人www社区| 一区二区三区在线免费观看 | 亚洲精品影片| 男人操女人免费软件| 综合自拍亚洲综合图不卡区| 亚洲人妻一区二区三区| 91色琪琪电影亚洲精品久久| 免费国产自线拍一欧美视频| 伊人久久久久久久久久久久久久|