亚洲天堂一级片-亚洲天堂三区-亚洲天堂久久精品成人-亚洲天堂毛片-久久国产欧美日韩高清专区-久久国产欧美日韩精品免费

北大青鳥北京校區提供:Java正則表達式

北大青鳥北京通州校區學術部提供:

一、java正則表達式概述:正則表達式是Java處理字符串、文本的重要工具。

Java對正則表達式的處理集中在以下兩個兩個類:
java.util.regex.Matcher 模式類:用來表示一個編譯過的正則表達式。
java.util.regex.Pattern 匹配類:用模式匹配一個字符串所表達的抽象結果。
北大青鳥課程

比如一個簡單例子:
1. import java.util.regex.Matcher;  
2. import java.util.regex.Pattern;  
3. /** * 正則表達式例子 * * @author leizhimin 2009-7-17 9:02:53 */  
4. public class TestRegx {  
5. public static void main(String[] args) {  
6. Pattern p = Pattern.compile("f(.+?)k");  
7. Matcher m = p.matcher("fckfkkfkf");  
8. while (m.find()) { String s0 = m.group();  
9. String s1 = m.group(1);  
10. System.out.println(s0 + "||" + s1);  
11. }  
12. System.out.println("---------");  
13. m.reset("fucking!");  
14. while (m.find())  
15. {  
16. System.out.println(m.group());  
17. }  
18. Pattern p1 = Pattern.compile("f(.+?)i(.+?)h");  
19. Matcher m1 = p1.matcher("finishabigfishfrish"); 
20. while (m1.find()) {  
21. String s0 = m1.group();  
22. String s1 = m1.group(1);  
23. String s2 = m1.group(2);  
24. System.out.println(s0 + "||" + s1 + "||" + s2);  
25. }  
26. System.out.println("---------");  
27. Pattern p3 = Pattern.compile("(19|20)\\d\\d([- /.])(0[1-9]|1[012])\\2(0[1-9]|[12][0-9]|3[01])");  
28. Matcher m3 = p3.matcher("1900-01-01 2007/08/13 1900.01.01 1900 01 01
29. 1900-01.01 1900 13 01 1900 02 31");  
30. while (m3.find()) { System.out.println(m3.group()); 
31.  } } }
輸出結果:(北大青鳥北京校區,北大青鳥課程
1. fck||c fkk||k ---------  
2. fuck finish||in||s fishfrish||ishfr||s ---------  
3. 1900-01-01 2007/08/13 1900.01.01 1900 01 01 1900 02 31 Process finished with exit code 0

二、一些容易迷糊的問題

1、Java對反斜線處理的問題
在其他語言中,\\表示要插入一個字符\;
在Java語言中,\\表示要插入正則表達式的反斜線,并且后面的字符有特殊意義。(北大青鳥北京校區,北大青鳥課程)

看API文檔:
預定義字符類
• . 任何字符(與行結束符可能匹配也可能不匹配)
• \d 數字:[0-9]
• \D 非數字: [^0-9]
• \s 空白字符:[ \t\n\x0B\f\r]
• \S 非空白字符:[^\s]
• \w 單詞字符:[a-zA-Z_0-9]
• \W 非單詞字符:[^\w]
但是看看上面程序,對比下不難看出:
\d在實際使用的時候就寫成了 \\d;

在Java正則表達式中,如果要插入一個\字符,則需要在正則表達式中寫成\\\\,原因是下面的APIDoc定義\\表示一個反斜線。(北大青鳥北京校區,北大青鳥課程

但是如果在正則表示式中表示回車換行等,則不需要多添加反斜線了。比如回車\r就寫作\r.

字符
• x 字符 x
• \\ 反斜線字符
• \0n 帶有八進制值 0 的字符 n (0 <= n <= 7)
• \0nn 帶有八進制值 0 的字符 nn (0 <= n <= 7)
• \0mnn 帶有八進制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7)
• \xhh 帶有十六進制值 0x 的字符 hh
• \uhhhh 帶有十六進制值 0x 的字符 hhhh
• \t 制表符 ('\u0009')
• \n 新行(換行)符 ('\u000A')
• \r 回車符 ('\u000D')
• \f 換頁符 ('\u000C')
• \a 報警 (bell) 符 ('\u0007')
• \e 轉義符 ('\u001B')
• \cx 對應于 x 的控制符

2、Matcher.find():嘗試查找與模式匹配的字符序列的下一個子序列。此方法從字符序列的開頭開始,如果該方法的前一次調用成功了并且從那時開始匹配器沒有被重置,則從以前匹配操作沒有匹配的第一個字符開始,即如果前一次找到與模式匹配的子序列則這次從這個子序列后開始查找。(北大青鳥北京校區,北大青鳥課程

3、Matcher.matchers():判斷整個字符序列與模式是否匹配。當連續用Matcher對象檢查多個字符串時候,可以使用
Matcher.reset():重置匹配器,放棄其所有顯式狀態信息并將其添加位置設置為零。

或者Matcher.reset(CharSequence input) 重置此具有新輸入序列的匹配器。
來重復使用匹配器。

4、組的概念,這個概念很重要,組是用括號劃分的正則表達式,可以通過編號來引用組。組號從0開始,有幾對小括號就表示有幾個組,并且組可以嵌套,組號為0的表示整個表達式,組號為1的表示第一個組,依此類推。(北大青鳥北京校區,北大青鳥課程)

例如:A(B)C(D)E正則式中有三組,組0是ABCDE,組1是B,組2是D;
A((B)C)(D)E正則式中有四組:組0是ABCDE,組1是BC,組2是B;組3是C,組4是D。
• int groupCount():返回匹配其模式中組的數目,不包括第0組。
• String group():返回前一次匹配操作(如find())的第0組。
• String group(int group):返回前一次匹配操作期間指定的組所匹配的子序列。如果該匹配成功,但指定組未能匹配字符序列的任何部分,則返回 null。
• int start(int group):返回前一次匹配操作期間指定的組所匹配的子序列的初始索引。
• int end(int group):返回前一次匹配操作期間指定的組所匹配的子序列的最后索引+1。
5、匹配的范圍的控制
最變態的就要算lookingAt()方法了,名字很讓人迷惑,需要認真看APIDoc。
• start() 返回以前匹配的初始索引。
• end() 返回最后匹配字符之后的偏移量。
• public boolean lookingAt()嘗試將從區域開頭開始的輸入序列與該模式匹配。
與 matches 方法類似,此方法始終從區域的開頭開始;與之不同的是,它不需要匹配整個區域。如果匹配成功,則可以通過 start、end 和 group 方法獲取更多信息。
返回:當且僅當輸入序列的前綴匹配此匹配器的模式時才返回 true。

6、Pattern標記
Pattern類的靜態方法
1. static Pattern compile(String regex, int flags) 
將給定的正則表達式編譯到具有給定標志的模式中。
其中的flags參數就是Pattern標記,這個標記在某些時候非常重要。
• Pattern.CANON_EQ 啟用規范等價。
• Pattern.CASE_INSENSITIVE 啟用不區分大小寫的匹配。
• Pattern.COMMENTS 模式中允許空白和注釋。
• Pattern.DOTALL 啟用 dotall 模式。
• Pattern.LITERAL 啟用模式的字面值分析。
• Pattern.MULTILINE 啟用多行模式。
• Pattern.UNICODE_CASE 啟用 Unicode 感知的大小寫折疊。
• Pattern.UNIX_LINES 啟用 Unix 行模式。
北大青鳥北京校區,北大青鳥課程—未完待續)

北大青鳥網上報名
北大青鳥招生簡章
主站蜘蛛池模板: 超薄肉色丝袜精品足j福利 超级乱淫视频aⅴ播放视频 | 欧美黄a | 亚洲国产欧洲综合997久久 | 国产亚洲男人的天堂在线观看 | 久久久久久久99久久久毒国产 | 亚洲 欧美 中文字幕 | 欧美精品在欧美一区二区 | 国产成人久久久精品一区二区三区 | 欧美一级特黄aa大片在线观看免费 | 久久精品国产只有精品6 | 国产免费一级高清淫曰本片 | 99国内精品久久久久久久 | 午夜91理论片 | 牛牛a级毛片在线播放 | 日本特黄特色高清免费视频 | 岛国在线永久免费视频 | 亚洲免费国产 | 久久思 | 亚洲 欧美 都市 自拍 在线 | 欧美一级片在线视频 | 国产步兵社区视频在线观看 | 久久中文字幕亚洲精品最新 | 亚洲一区二区三区免费 | 欧美在线视频免费 | 97在线视频免费 | 免费欧洲毛片a级视频无风险 | 亚洲在线天堂 | 久久国产精品久久国产片 | 韩国一级免费视频 | 日韩精品一区在线观看 | 黄色毛片视频校园交易 | 亚洲欧美在线观看视频 | 亚洲网址在线观看 | 中文字幕日韩精品亚洲七区 | 色综合久久91 | 国产一级一片免费播放视频 | 三级中文字幕 | 九九视频在线观看视频6偷拍 | 美女精品永久福利在线 | 一级黄色香蕉视频 | 日本特级淫片免费看 |