隨筆 - 11, 文章 - 1, 評(píng)論 - 20, 引用 - 0

          導(dǎo)航

          <2006年8月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          小經(jīng)驗(yàn)兩則

          1.Oracle 8i 下使用最新的oracle thin driver時(shí)用DatabaseMetaData獲取主鍵等信息時(shí),需要將
          connection.getMetaData().getPrimaryKeys(connection.getCatalog(),null,tableName);
          中的tableName轉(zhuǎn)為大寫,否則無(wú)法得到數(shù)據(jù)。

          2.正則表達(dá)式中,需要以","分割字符串,但是要分割的字串中含有","號(hào),為了避免沖突,引入前置轉(zhuǎn)義字符"\",這樣的正則怎么寫呢?
          例如:
          String txt = "STATE_COUNTY=kj\\\\,,ADDR_LINE1=l=j,ADDR_LINE2=mj\n\n,ADDR_LINE3=n\\,o,\n\nADDR_LINE4=\np";
          需要把鍵值對(duì)切分出來(lái):
          ?Pattern.compile("[^\\\\],)");
          這個(gè)是不行的,會(huì)將","號(hào)前一個(gè)字符消耗掉。

          ?Pattern.compile("(?![\\\\]),)");
          也不行
          Pattern?p?=?Pattern.compile,",(?![\\\\])");
          倒是可以,但是把轉(zhuǎn)義字符放后面似乎有點(diǎn)詭異。
          找了一個(gè)折衷辦法,不切割使用正則獲取"鍵=值"子串:
          Pattern?p?=?Pattern.compile("\\w+\\s*=.*?[,]*.*?(?=,|$)",Pattern.DOTALL);
          但是還是帶來(lái)了子串中不能含有"="的問(wèn)題。
          最后查了一個(gè)JDK1.4 DOC,發(fā)現(xiàn)了一個(gè)反向的非匹配串寫法:
          Pattern?p?=?Pattern.compile("(?<!\\\\),\\s*");
          這樣一來(lái)就解決了以上問(wèn)題。

          posted on 2006-08-03 09:54 wolfsquare 閱讀(558) 評(píng)論(0)  編輯  收藏 所屬分類: 其他技術(shù)


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 徐水县| 青冈县| 莆田市| 西昌市| 宿州市| 巩留县| 枝江市| 清原| 阿拉善左旗| 奉化市| 宝兴县| 布尔津县| 缙云县| 汨罗市| 嵊州市| 延吉市| 平乐县| 弋阳县| 新民市| 皋兰县| 罗甸县| 诸暨市| 通渭县| 永顺县| 博野县| 自治县| 武川县| 桐梓县| 万安县| 丹寨县| 铜陵市| 海晏县| 绥芬河市| 炎陵县| 深州市| 黄浦区| 长兴县| 枣庄市| 诏安县| 江安县| 娄底市|