1,正則表達式簡介
(1)什麼是正則表達式:是使用某種模式去匹配一類字符串的公式,它主要用於字符串的校驗,分割,查找及替換操作。
(2)正則表達式的作用:替換文本或者代碼中的某些字符,編輯軟件無法完成的查找和替換,可以使用正則表達式來完成幾乎全部的文本查找和替換工作。
正則表達式的強大功能源於它可以指定抽象模式來校驗許多不同的字符序列。可以這定3種基本的抽象模式:
1.可以出現的字符集 (如:字母,數字和下劃線)
2.可選擇行的集合 (如:“com”,“net”或“org”)
3.可重復的序列 (如:自少一個短時不多於8個字母字符)
(將這3種模式按照不同的方式結合,就可以校驗用戶輸入的電子右鍵地址格式是否正確;校驗用戶輸入的日期格式是否正確;校驗用戶輸入的身份證號格式是否正確等等 )
2,正則表達是基礎
(1)元字符:正則表達式由一些普通字符和一些元字符(metacharacters)共同組成,其中普通字符包括大小寫的字母和數字,而元字符則具有特殊含義。
元字符是用來描述其前面的字符在匹配模式中出現的方式。元字符本身是單一的字符,但是不同或者相同的元字符組合起來可以構成大的元字符。表中介紹各元字符的含義
字符 含義 () 將不同的祖父串組成一組,也稱為子模式 [ ] 定義字符集合 {} 指定重復次數 ^ 在字符串的開始匹配或者表示不在某個字符集內 $ 在字符傳結尾匹配 . 匹配換行符(\n)之外的任意字符 ? 重復零次或者一次 * 重復零次或者多次 + 重復一次或者多次 \ 轉換字符 | 或者選擇分支的標識正則表達式的語法是嚴格區分大小寫的。
(2)方括號表達式:可以用來定義一個字符集合,其含義是必須匹配該集合中的任意一個字符,定義方括號表達式的方式有一下兩種:
1.把所有的字符都列出阿來。 例如:方括號表達式”[1234567890]“可以與任何數字字符匹配,但是只能匹配一個字符。
2.利用字符”—“來表示字符區間。 例如:方括號表達式”[0123456789abcdefABCDEF]“ 可以簡寫成方括號表達式”[0-9a-fA-F]“。
(通常情況下,字符”-“都只是一個普通字符,只有在表達范圍時才被作為元字符來使用。如:方括號表達式[-a-z]的第一個字符”-“只代表一個普通字符,而第二個是一個元字符。
用來表示字母a到z的范圍裡)
常用的方括號表達式:
字符 含義 [a-z] 小寫字母字符 [A-Z] 大寫字母字符 [a-zA-Z] 大小寫字母字符 [0-9] 數字字符 [0-9\+\-\*\\] 數字字符、加號、減號、乘號、除號 [\f\r\n\t] 空白字符(3)定位符:方括號表達式只能用來匹配一個字符,如“Y8”、“B3”、“A6”等。這裡就需要使用定位符“^”與“$”
定位符是用來描述字符串或單詞的邊界的,具體包括^("shift+6組合鍵")和$(美元符號)它們含義分別為在字符傳的開始匹配和在結尾匹配。
靈活使用定位符和方括號可以完成功能不同的正則表達式。 如:“^[A-Z][0-9]$”可以用來校驗由兩個字符組成的字符串,並且該字符串要同時滿足
以大小寫字母字符開頭,以數字結尾的條件。
元字符“^”如果出現在方括號表達式的裡面,表示含義為否;如果出現在方括號外面,表示含義為字符串的開始。
(4)量詞:也稱為限定符,用來指定字符必須要出現的次數,也就是說在指定重復模式時要使用量詞。 量詞具體包括*、+、?、{n}、{n,}、{n,m}共6種使用見表所示:
字符 含義 * 重復任意次(包括零次) + 重復一次或多次 ? 重復零次或一次 {n} 重復n次,其中n是個非負數 {n,} 重復至少n次,其中n是非負數 {n,m} 重復至少n到m次,其中m和n均為非負數並且m大於等n使用量詞可以指定在一次搜索中查找到一個表達式的次數,如:正則表達式“sung{1,2}”可以用來校驗任何字符串“sung”和“sungsung”
量詞“?”如果出現在方括號裡面也一樣代表一個普通字符。如:“[-0-9?]”可以用來校驗任何一個數字或者一個普通字符"?"或者一個普通字符“-”。
(5)選擇符:正則表達式中豎線“|”可以表示選擇分支。如:正則表達式“aaa|bbb|ccc”可以用來校驗字符串“aaa”,字符串“bbb”,或“ccc”。 使用選擇與其他元字符結合可以完成更復雜的正則表達式 如:正則表達式“^[0-9]|[a-z]”可以用來校驗數字或字母字符開頭。