有了一點(diǎn)點(diǎn)小小成就,五子棋游戲的基本功能已經(jīng)實(shí)現(xiàn)的差不多了,還需要進(jìn)行部分代碼優(yōu)化,期待明天的到來,因?yàn)槊魈煳揖涂梢詫?shí)現(xiàn)我一個(gè)夢(mèng)想,那就是晚上自己開發(fā)的游戲,呵呵!學(xué)在其中,樂在其中!下午實(shí)在有些腰酸背痛,決定就近去爬山,經(jīng)過商議決定去百望山森林公園,真的是好久沒鍛煉了,才兩百多米的山爬完回來累的不行,不過也算是感受了一下大自然的風(fēng)情,站在山頂?shù)母杏X真的很不錯(cuò),看著山下風(fēng)景,突然感覺自己好渺小,這座城市如此之大,何時(shí)何處才是我安身之處?努力,我相信在不遠(yuǎn)的未來,我相信我的選擇。吃過晚飯,看著張孝祥老師的Servlet的視頻,對(duì)Servlet進(jìn)行了基礎(chǔ)的預(yù)習(xí)。下面對(duì)今天的學(xué)習(xí)成果和大家分享。
1.什么是正則表達(dá)式
一個(gè)正則表達(dá)式,就是用某種模式去匹配一類字符串的一個(gè)公式。個(gè)人覺得就是一個(gè)字符構(gòu)成的串,它定義了一個(gè)用來搜索匹配字符串的模式。
2.正則表達(dá)式在字符串中的應(yīng)用
備注:由于基本規(guī)則比較簡(jiǎn)單,而且API中以及網(wǎng)絡(luò)上都有就不詳解了,下面主要總結(jié)下在字符串中的應(yīng)用
正則表達(dá)式主要作用于字符串,功能有匹配,搜索,切割,替換
1) 匹配
這里主要通過String類的mathes方法實(shí)現(xiàn),只要將定義好的正則表達(dá)式作為參數(shù)傳入即可。
例:匹配字符串"123456789012345"是否是QQ號(hào)碼
String qq = "123456789012345";
String qqreg = "[1-9]//d{4,14}";
System.out.print(qq.matches(qqreg ));
2) 搜索
建立正則規(guī)則,將規(guī)則封裝成對(duì)象(Pattern的compile),作用于字符串(Matcher),返回匹配器,利用匹配器作用字符串,找出需要的字符串)
例:取出字符串"ming tian wu zi qi jiu kai fa wan le !"兩個(gè)字母的單詞
String text = "ming tian wu zi qi jiu kai fa wan le !!";
String textreg = "//b[a-z]{2}//b";//取出兩個(gè)字母組成的單詞;
Pattern p = Pattern.compile(textreg);//將正則規(guī)則封裝成對(duì)象。
Matcher m = p.matcher(text);//通過正則對(duì)象獲取匹配器。意為:讓規(guī)則作用到字符串上。while(m.find())
System.out.println(m.group());
3) 切割
通過split方法實(shí)現(xiàn)
例:將字符串
復(fù)制代碼代碼如下:
String str = "sazzdkqqqqlfooojsz";
String strreg = "(.)//1+";//"//.";
String[] arr = str.split(strreg);
for(String s : arr)
{
System.out.println("s="+s);
}
4) 替換
通過字符串的repalceAll方法實(shí)現(xiàn)
例:將"10.10.10.10 192.168.105.22 1.1.1.1 2.2.2.2 211.68.43.254"按網(wǎng)段存放
String ip = "10.10.10.10 192.168.105.22 1.1.1.1 2.2.2.2 211.68.43.254";
ip = ip.replaceAll("(//d+)","00$1");//在每一段的前面補(bǔ)兩個(gè)0.
ip = ip.replaceAll("0+(//d{3})","$1"); //只保留每一段的最后三位。
String[] ipArr = ip.split(" ");
TreeSet<String> ts = new TreeSet<String>();//因?yàn)閕p地址很多,需要使用容器存放,而且需要排序,TreeSet
for(String i : ipArr){ts.add(i);}
for(String i : ts){System.out.println(i.replaceAll("0*(//d+)","$1"));}
3.常用正則表達(dá)式
1) 匹配空白行的正則表達(dá)式:/n/s*/r
2) 匹配首尾空白字符的正則表達(dá)式:^/s* ¦/s*$
3) 匹配Email地址的正則表達(dá)式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
4) 匹配網(wǎng)址URL的正則表達(dá)式:[a-zA-z]+://[^/s]*
5) 匹配帳號(hào)是否合法(字母開頭,允許5-16字節(jié),允許字母數(shù)字下劃線):^[a-zA-Z][a-zA- Z0-9_]{4,15}$
6) 匹配中國郵政編碼:[1-9]/d{5}(?!/d)
7) 匹配身份證:/d{15} ¦/d{18}
匹配中文字符的正則表達(dá)式: [/u4e00-/u9fa5]