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]