亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_91精品国产欧美一区二区成人

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 正則表達式從入門到精通

正則表達式從入門到精通 時間:2018-09-26      來源:未知

一、學習目標:

1.概念

2.涉及類

3.入門示例

4.正則表達式組成規范

二、學習過程:

1.概念:“正則表達式”(Regular Expression)就是一個特殊的字符串,用來匹配字符串與查找字符串

2.涉及類:

(1) Pattern 對象表示一個已編譯的正則表達式。Pattern 類沒有提供公共的構造方法。 必須調用公共的靜態 compile 方法,它將返回一個 Pattern 對象。

(2)Matcher 是一個靠著輸入的字符串來解析這個模式和完成匹配操作的對象。 Matcher 也沒有定義公共的構造方法,需要通過調用 Pattern 對象的 matcher 方法來獲得一個 Matcher 對象。

(3)PatternSyntaxException 對象是一個未檢查異常,指示了正則表達式中的一個語法錯誤。

3.入門示例:

3.1入門示例1:判斷字符串是否以ax開頭by結尾,并且中間有僅只有一個字符

public class Test {

public boolean m1(String str) {

// 方式一:

// Pattern p = Pattern.compile("ax.by");

// Matcher m = p.matcher(str);

// boolean b = m.matches();

// 方式二

boolean b = Pattern.matches("ax.by", str);//“.”匹配任意一個字符

return b;

}

public static void main(String[] args) {

Test t = new Test();

System.out.println(t.m1("axmby"));//true

}

}

3.2入門示例2:查找字符串中是否有算術運算符

private void m2() {

//"\\+|\\-|\\*|/|%"表示‘+’或‘-’或‘*’或‘/’或‘%’

Pattern p = Pattern.compile("\\+|\\-|\\*|/|%");

Matcher m = p.matcher("23+234-123*234/1000");

boolean b = m.find();

System.out.println(b);//true

}

3.3入門示例3:查找字符串中是否有兩個數字組成的子字符串

private void m3() {

Pattern p = Pattern.compile("\\d{2}");//“\\d{2}”表示兩個數字

Matcher m = p.matcher("aabbcc23sdf23");

System.out.println(m.find());//true

}

3.4入門示例4:根據兩個數字的子字符串把字符串拆分成多個字符串的數組

public void m5() {

String s = "aa23bb13cc12dd90ee";

String[] a = s.split("\\d{2}");//“\\d{2}”表示兩個數字

for (String string : a) {

System.out.print(string+” ”);

}

}

運行結束為:aa bb cc dd ee

4.上面示例中已經出現了四個按正則表達式規范組成的正則表達式,即"ax.by"、"\\+|\\-|\\*|/|%"、"\\d{2}",那么正則表達式的組成規范是什么呢?

4.1 格式為: 字符+次數

4.2、匹配字符的通配符

4.2.1. "." ---> 用于匹配一個任意的字符

比如: “t.n”,它匹配“tan”、“ten”、“tin”和“ton”,還匹配“t#n”、“tpn”甚至“t n”

Pattern p = Pattern.compile("a.b.c.d");

Matcher m = p.matcher("axbac2d");// 正則表達式 電話號號

boolean b = m.matches();// 判斷是否匹配 true

4.22. "[]" --->為了解決"."匹配范圍過于廣泛這一問題,你可以在方括號(“[]”)里面指定看來有意義的字符。此時,只有方括號里面指定的字符才參與匹配。也就是說,正則表達式“t[aeio]n”只匹配“tan”、“Ten”、“tin”和“ton”。但“Toon”不匹配,因為在方括號之內你只能匹配單個字符:

4.2.3."|"--->如果除了上面匹配的所有單詞(tan”、“Ten”、“tin”和“ton”)之外,你還想要匹配“toon”,那么,你可以使用“|”操作符。“|”操作符的基本意義就是“或”運算。要匹配“toon”,使用“t(a|e|i|o|oo)n”正則表達式。這里不能使用方擴號,因為方括號只允許匹配單個字符;這里必須使用圓括號“()”, 它的作用與算術表達式中的作用是一樣的,表示一個整體。

4.2.4.“-”表示數字或字母的范圍,

[0-9]表示0到9中的其中一個字符,[3-8]表示3到8中的一個字符

[a-z]表示a到z中的其中一個字符,[b-m]表示b到m中的一個字符

[A-Z]表示A到Z中的其中一個字符

[b-d3-8]表示b到z或3到8中其中一個字符

[a-dx-z]表示a到d或x到z中其中一個字符

示例:[a-c][0-9]{3}可以匹配a234,b112,c223等.

4.2.5."^" ---> 即非,用來確定緊靠該符號右邊的符號不能出現

[^0-9]表示不可以為0到9中的一個字符

[^A]表示不可以為A的字符

[^a-c]表示不可以為a到c的字符

4.2.6.快捷符號

 示例: "\\d{6}",匹配6個數字組成的字符。,注意前面要用兩個\\表示轉義

4.2.7. "\"表示轉義

如果正則表達式中要使用的字符與通配符沖突,則在前加上"\\"表示不是通配符使用

比如"[0-9]{3}\\*{2}[0-9]{2}a*" 中*不是次數,而是字符*。它可以匹配0到9的三個數 字開頭,后面是兩個*,再后是0到9的2個數字后是0到多個a字符。

這個"234**23aaaaa"可以匹配上面的正則表達式。

4.2.8."$"表示結束,每個正則表達式后面都可以加上$,實質上加與不加作用相同

4.2.9.特殊的匹配

[\\u4e00-\\u9fa5]匹配漢字

示例"[\\u4e00-\\u9fa5]{3}", 可以匹配三個漢字組成的字符串

4.3、匹配次數的通匹符

這些符號用來確定緊靠該符號左邊的符號出現的次數:

示例1:a*Hello可以匹配以Hello結尾,以0到多個a開頭的字符串,如Hello,aHello,aaHello,aaaHello

示例2:MyA*Hello可以匹配以My開頭,以Hello結尾,中間可以有0到多個A,如MyAAAHello

示例3:HelloE+World可以匹配以Hello開頭,以World結尾,中間可以有1到多個E,如HelloEEWorld

示例4:HelloE?World可以匹配以Hello開頭,以World結尾,中間必須有0到1個E

示例5:HelloE{3}World可以匹配以Hello開頭,以World結尾,中間必須有3個E

示例6:HelloE{2,4}World可以匹配以Hello開頭,以World結尾,中間必有2到4個E

示例7:Hello[^abc]可以匹配以Hello開頭,不能以a或b或c結尾

上一篇:軟鏈接和硬鏈接

下一篇:用meteor快速實現跨平臺應用

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 国产一级a毛片 | 欧美性bbbbbbbbbbbb | 美女高清特黄a大片 | 欧美亚洲国产一区二区 | 天天摸天天操 | 国产精品亚洲片在线不卡 | 全黄性性激高免费视频 | 欧美视频免费 | 九九热精品国产 | 久久久免费精品视频 | 国内自拍偷三级视频 | 欧美日本另类xxx乱大交 | 精品剧情v国产在免费线观看 | 免费中国jlzzjlzz在线播放 | 精品福利一区二区三区 | 国产原创巨作精品 | 激情成人黄色 | 中文字幕久久精品波多野结 | 激情你懂的 | 久久网欧美 | 日本特级黄 | 久久国产麻豆 | 天天操天天看 | 欧美性最猛xxxx在线观看视频 | 色综合久久天天综合绕观看 | 久久国产精品亚洲一区二区 | 在线观看www | 亚洲欧美韩国日产综合在线 | www日韩中文字幕在线看 | 99热这里只有精品久久免费 | 日本视频网 | 日韩免费视频在线观看 | 精品欧美一区二区三区在线 | 人人插人人添 | 狠狠久久婷五月综合色啪网 | 人人爱国产 | 日本不卡高清免费 | 热久久视久久精品18国产 | 剧情片在线 | 永久免费人成网ww555kkk手机 | 日本免费网站在线观看 |