1、正規表示式組成
正規表示式是由普通字元(例如字元a到z)以及特殊字元(稱為元字元)組成的文字模式。正規表示式作為乙個模板,將某個字元模式與所搜尋的字串進行匹配。
正規表示式=普通字元+特殊字元(元字元)
2、匹配符
字元匹配符用於匹配某個或某些字元
名詞解釋:字元簇
在正規表示式中,通過一對方括號括起來的內容,我們就稱之為「字元簇」,其表示的是乙個範圍,但是實際匹配時,只能匹配固定的某個字元。
[a-z]:匹配小寫字母從a-z中的任一字元
[a-z]:匹配大寫字母從a-z中的任一字元
[0-9]:匹配數字從0-9任一字元,相當於\d
[0-9a-z]:匹配數字從0-9或小寫字母從a-z任一字元
[0-9a-za-z]:匹配數字從0-9,小寫字母從a-z或者是大寫字母從a-z的任一字元
[abcd]:匹配字元abcd中的任一字元
[1234]:匹配數字1234中的任一字元
在字元簇中存在乙個特殊符號^(脫位元組),脫位元組在字元簇代表取反的含義
[^a-z]:匹配除小寫字母從a-z以外的任一字元
[^0-9]:匹配除數字從0-9以外的任一字元
[^abcd]:匹配除abcd以外的任一字元
在正規表示式中還有一類特殊字元,如下所示:
\d:匹配乙個數字字元,用字元簇表示[0-9]
\d:匹配乙個非數字字元,也可以使用字元簇[^0-9]或[^\d]
\w:匹配包括下劃線的任何單詞字元,用字元簇[0-9a-za-z_]
\w:匹配任何非單詞字元,[^0-9a-za-z_]或[^\w]
\s:匹配任何空白字元,空格,製表符,換行符都可以通過\s匹配
\s:匹配任何非空白字元,[^\s]
.:匹配除「\n」之外的任何單個字元
示例**:
3、限定符
限定符可以指定正規表示式的乙個給定元件必須要出現多少次才能滿足匹配。
*匹配前面的子表示式零次或多次,0到多,可以使用代替
+匹配前面的子表示式一次或多次,1到多,可以使用代替
?匹配前面的子表示式零次或一次,0或1,可以使用代替
匹配確定的n次,如,連續匹配18次
至少匹配n次,如,代表最少匹配1次
最少匹配n次且最多匹配m次,如代表最少匹配1最多匹配7次
示例**:
在正規表示式:
我們把這週匹配多的就不匹配少的情況,就稱之為「貪婪匹配原則」,正規表示式預設使用的就是貪婪匹配原則。
在正規表示式我們也可以在限定符的後面新增乙個問號(?)來改變匹配原則為「非貪婪匹配原則」,能匹配少的就不匹配多的。
4、定位符
定位符可以將乙個正規表示式固定在一行的開始或結束。也可以建立只在單詞內或只在單詞的開始或結尾除出現的正規表示式。
^匹配輸入字串的開始位置(以***開始)
$匹配輸入字串的結束位置(以***結束)
\b匹配乙個單詞邊界(字串開頭、結尾、空格、逗號、點號等符號)
\b匹配非單詞邊界
示例**:使用正規表示式驗證手機號碼
示例**:單詞邊界與非單詞邊界
5、轉義符
在正規表示式中,如果遇到特殊符號,我們必須要使用轉義字元(反斜槓\)來進行轉義。
示例**:
6、選擇匹配符
在正規表示式,如果要匹配的內容包含多個選擇,我們可以通過|選擇匹配符來進行匹配
7、特殊用法
1)(?=) :正向預查
匹配結果?=匹配條件,必須滿足匹配條件,才能輸出匹配結果
2)(?!) :負向預查
3)(?:) :輸出內容,但不捕獲
正規表示式 正規表示式 總結
非負整數 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...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...