国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Java正則表達式典型用例

Java正則表達式典型用例

正則表達式往往是網(wǎng)頁信息提取的主要技術(shù)工具,但是網(wǎng)頁信息提取工具包MetaSeeker的客戶端軟件DataScraper并沒有采用該技術(shù),而是采用DOM+XPath+XSLT。但是提取到的結(jié)果被集成到數(shù)據(jù)庫或其他Web應用之前,可以采用正則表達式對提取結(jié)果進行二次過濾。例如,MettaSeeker工具包中的結(jié)構(gòu)化數(shù)據(jù)對象搜索引擎SliceSearch和通用文本分類訓練集管理器MetaCorpora都采用了正則表達式對特定字段進行過濾處理。

正則表達式的句法是比較不好掌握,下面是從網(wǎng)絡上搜集的多個正則表達式的典型用例(use case),可以根據(jù)自己的需要,套用這些樣例即可。當然要讀懂這寫典型用例,需要基本的正則表達式句法知識,可以閱讀文后的參考資料。


查詢

代碼片段:

     String str = "abc efg ABC";     String regEx = "a|f"; //表示a或f     Pattern p = Pattern.compile(regEx);     Matcher m = p.matcher(str);     boolean rs = m.find(); 

利用find()方法,如果str中有regEx,那么rs為true,否則為false。如果想在查找時忽略大小寫,則可以寫成

     Pattern p=Pattern.compile(regEx,Pattern.CASE_INSENSITIVE);

上述片斷只調(diào)用了一次m.find(),只匹配一次,如果要將輸入字串中的所有匹配到的子串都匹配出來,應該將find()放在while循環(huán)中



提取

代碼片段:

     String regEx = ".+\(.+)$";     String str = "c:\dir1\dir2\name.txt";     Pattern p = Pattern.compile(regEx);     Matcher m = p.matcher(str);     boolean rs = m.find();     for(int i = 1; i <= m.groupCount(); i++){         System.out.println(m.group(i));     } 

利用find()方法,從字符串中提取出name.txt,提取的字符串儲存在m.group(i)中,m.groupCount()表示提取到的字符串分組的數(shù)量

分組m.group(0)表示匹配到的完整子字串,m.group(n) n = 1, 2, ... 是匹配到的子字串中的各個組,而m.groupCount()是不包括group(0)的,也就是如果m.group(0)和m.group(1)都有內(nèi)容,那么m.groupCount() = 1



分割

代碼片段:

     String regEx = "::";     Pattern p = Pattern.compile(regEx);     String[] r = p.split("xd::abc::cde");

split()方法執(zhí)行后,獲得集合{"xd","abc","cde"},其實分割時還有更簡單的方法:

     String str = "xd::abc::cde";     String[] r = str.split("::");


替換(刪除)

代碼片段:

     String regEx = "a+"; //表示一個或多個a     Pattern p = Pattern.compile(regEx);     Matcher m = p.matcher("aaabbced a ccdeaa");     String s = m.replaceAll("A");

   使用replaceAll()方法,用"A"替換匹配到的字符串,結(jié)果為"Abbced A ccdeA"   

如果寫成空串,即可達到刪除的功能,比如:

     String s=m.replaceAll("");

結(jié)果為"bbced ccde"

上面的用例是全部替換,實際上還有更多替換用例。


替換首次出現(xiàn)的字符

代碼片斷:

     Pattern pattern = Pattern.compile("正則表達式");     Matcher matcher = pattern.matcher("正則表達式 Hello World,正則表達式 Hello World");     String s = matcher.replaceFirst("Java");

替換第一個符合正則的數(shù)據(jù)


多樣化替換字符串

代碼片斷:

     Pattern pattern = Pattern.compile("正則表達式");     Matcher matcher = pattern.matcher("正則表達式 Hello World,正則表達式 Hello World ");     StringBuffer sbr = new StringBuffer();     while (matcher.find()) {         matcher.appendReplacement(sbr, "Java");     }     matcher.appendTail(sbr);

這個片斷也許無法看出與replaceAll()的區(qū)別,但是使用appendReplacement和appendTail方法可以使用多個不同的替換字符串,就像[1]所說,替換字串可以是Java程序計算出來的,而不是固定的,一個很詳細的例子:string.replaceAll()中的特殊字符($ \)與matcher.appendReplacement。

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
JAVA與正則表達式
Java過濾特殊字符的正則表達式 - Java - JavaEye論壇
(89) 正則表達式 (中) / 計算機程序的思維邏輯
過濾特殊字符
JAVA中正則表達式匹配,替換,查找,切割的方法
java正則表達式去除html中所有的標簽和特殊HTML字符(以&開頭的)
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服