正則表達式學習總結

正則表達式的書寫步驟:

1、觀察要替換的文本內容,抽出合適的一句賦值給 $pattern,選擇要替換的部分字段,將其更改爲 (.*) ;

2、將所選內容即 $pattern 裏的特殊符號轉義加 / ;


3、注意解決裏面的空格問題,使用 /s*或/s+,注意區別如下:

      *    號匹配 0 個或多個的數量限定符
      +   號 匹配 1 個或多個的數量限定符

4、其他無用字符不用管。



-----------------------------------------------------------------------------------------------------------

/        有數種用途的通用轉義符
^        斷言目標的開頭(或在多行模式下行的開頭,即緊隨一換行符之後)
$        斷言目標的結尾(或在多行模式下行的結尾,即緊隨一換行符之前)
.        匹配除了換行符外的任意一個字符(默認情況下)
[        字符類定義開始
]        字符類定義結束
|        開始一個多選一的分支
(        子模式開始
)        子模式結束
?        擴展 ( 的含義,也是 0 或 1 數量限定符,以及數量限定符最小值
*        匹配 0 個或多個的數量限定符
+        匹配 1 個或多個的數量限定符

{        最少/最多數量限定開始
}        最少/最多數量限定結束

[        字符類模式中方括號內的部分稱爲“字符類”。字符類中可用的元字符爲:
/        通用轉義字符
^        排除字符類,但僅當其爲第一個字符時有效
-        指出字符範圍
]        結束字符類

以下說明了每一個元字符的用法。

反斜線(/)
反斜線第一個用法:轉義可見方式編碼
"*" => "/*" "/" => "//"

反斜線第二個用法:轉義不可見方式編碼

/a        alarm,即 BEL 字符(0x07)
/cx        "control-x",其中 x 是任意字符
/e        escape(0x1B)
/f        換頁符 formfeed(0x0C)
/n        換行符 newline(0x0A)
/r        回車符 carriage return(0x0D)
/t        製表符 tab(0x09)
/xhh        十六進制代碼爲 hh 的字符
/ddd        八進制代碼爲 ddd 的字符,或 backreference

反斜線第三個用法是指定通用字符類型:

/d        任一十進制數字
/D        任一非十進制數的字符
/s        任一空白字符
/S        任一非空白字符
/w        任一“字”的字符
/W        任一“非字”的字符

反斜線第四個用法是某些簡單的斷言

/b        字分界線
/B        非字分界線
/A        目標的開頭(獨立於多行模式)
/Z        目標的結尾或位於結尾的換行符前(獨立於多行模式)
/z        目標的結尾(獨立於多行模式)
/G        目標中的第一個匹配位置

音調符(^)和美元符($)
句號(.)
方括號([])
豎線(|)                豎線字符用來分隔多選一模式

子模式

子模式由圓括號定界,可以嵌套。將模式中的一部分標記爲子模式可以:

1. 將多選一的分支局部化。例如
        模式: cat(aract|erpillar|) 表示 "cat","cataract" 或 "caterpillar"
2. 將子模式設定爲捕獲子模式
        例如,如果將字符串 "the red king" 來和模式the ((red|white) (king|queen))進行匹配,捕獲的子串爲"red king","red"以及"king"並被計爲1,2和3
3.Single-character quantifiers
    表格 3. Single-character quantifiers
     * equivalent to {0,}
     + equivalent to {1,}
     ? equivalent to {0,1}

      字符簇 含義[[:alpha:]] 任何字母[[:digit:]] 任何數字[[:alnum:]] 任何字母和數字[[:space:]] 任何白字符[[:upper:]] 任何大寫字母[[:lower:]] 任何小寫字母[[:punct:]] 任何標點符號[[:xdigit:]] 任何16進制的數字,相當於[0-9a-fA-F]
 
發佈了43 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章