正則表達(dá)式 傳智播客學(xué)習(xí)
更新時(shí)間:2009年11月23日 00:05:27 作者:
今天是預(yù)熱班結(jié)束后的第二天,按照原定計(jì)劃,今天復(fù)習(xí)了正則表達(dá)式以及GUI方面的內(nèi)容
有了一點(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)
例:將字符串
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) 匹配中國(guó)郵政編碼:[1-9]\d{5}(?!\d)
7) 匹配身份證:\d{15} ¦\d{18}
匹配中文字符的正則表達(dá)式: [\u4e00-\u9fa5]
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) 匹配中國(guó)郵政編碼:[1-9]\d{5}(?!\d)
7) 匹配身份證:\d{15} ¦\d{18}
匹配中文字符的正則表達(dá)式: [\u4e00-\u9fa5]
相關(guān)文章
使用正則限制input框只能輸入數(shù)字/英文/中文等等
限制input框只能輸入數(shù)字或英文的方法有很多,下面為大介紹下使用正則是如何實(shí)現(xiàn)的,感興趣的朋友不要錯(cuò)過2013-11-11常用的正則表達(dá)式大全(數(shù)字、字符、固定格式)
正則表達(dá)式(regular expression)描述了一種字符串匹配的模式,可以用來檢查一個(gè)串是否含有某種子串、將匹配的子串做替換或者從某個(gè)串中取出符合某個(gè)條件的子串等。本文給大家分享常用的正則表達(dá)式大全(數(shù)字、字符、固定格式),感興趣的小伙伴一起學(xué)習(xí)吧2016-04-04Android中手機(jī)號(hào)、車牌號(hào)正則表達(dá)式大全
這篇文章主要介紹了Android中手機(jī)號(hào)、車牌號(hào)正則表達(dá)式的相關(guān)資料,需要的朋友可以參考下2015-09-09webregexp 正則測(cè)試實(shí)現(xiàn)代碼
WebRegExp 1.0 - 客服果果 [ 無憂版 ]對(duì)于想學(xué)習(xí)正則的朋友是個(gè)不錯(cuò)的在線工具,測(cè)試你正則的正確性。2009-03-03詳解linux正則表達(dá)式(基礎(chǔ)正則表達(dá)式+擴(kuò)展正則表達(dá)式)
這篇文章主要介紹了詳解linux正則表達(dá)式(基礎(chǔ)正則表達(dá)式+擴(kuò)展正則表達(dá)式)的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2018-11-11javascript 正則表達(dá)式用法 小結(jié)
許多朋友對(duì)于js的正則感覺方法比較亂,沒有個(gè)統(tǒng)一的方法,大家可以看下,根據(jù)需要進(jìn)行選擇,或把一種用好了,另外一種自然也就很輕松了。2009-06-06