正規表示式簡介
**: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」可以用來校驗任何字串「sung」和「sungsung」
量詞「?」如果出現在方括號裡面也一樣代表乙個普通字元。如:「[-0-9?]」可以用來校驗任何乙個數字或者乙個普通字元"?"或者乙個普通字元「-」。
(5)選擇符:正規表示式中豎線「|」可以表示選擇分支。如:正規表示式「aaa|bbb|ccc」可以用來校驗字串「aaa」,字串「bbb」,或「ccc」。 使用選擇與其他元字元結合可以完成更複雜的正規表示式 如:正規表示式「^[0-9]|[a-z]」可以用來校驗數字或字母字元開頭。
正規表示式的奧秘
歷史 正規表示式的早期起源正規表示式的 祖先 可以一直上溯至對人類神經系統如何工作的早期研究。warren mcculloch 和 walter pitts 這兩位神經生理學家研究出一種數學方式來描述這些神經網路。1956 年,一位叫 stephen kleene 的美國數學家在 mcculloch...
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...