水平所限, 如有錯誤, 還請斧正. 歡迎轉載, 轉載請注明出處.
格式說明:
紅色表示一個正則表達, 其中的粗體表示特殊含義字符
黑色表示說明, 藍色表示示例部分
*特殊字符:
特殊字符是具有特殊含義的字符. 列表如下:
\
轉意字符, 轉換下一個字符的含義.詳見 *轉意字符.
^
表征行首, 即表示后繼字符必須為行首字符
比如^http表示行首的http
$
表示行尾, 即表示先行字符為行尾字符
比如\.com$表示行尾的.com
*
無或者重復, 表示該位置或者無內容(null), 或者為先行字符的多次重復
+
重復, 表示該位置為先行字符的多次重復
比如te*st可以是test, teest, teeest, 但te+st不能是test
.
非新行單字符, 表示任意非新行的單個字符(一個tab, 一個空格, 一個數字, 一個字母, etc.)
| (morass提示: '|' 字符屬于擴展的正則表達)
邏輯或, a|b表示該位置為a或者為b
比如Jon|ke表示Jone或Joke, Z.e|+可以表示Zoe, 也可以表示Zoo, 但不是Zooo, ...
*塊(Block):
(expression)
標記塊, 括號內為標記內容. 標記塊既影響驗證順序, 也可以用來標記表達式中的部分內容. 在"替換"命令中, 標記過的塊可以依次用\1, \2,...來表示, (在editplus中, 整個符合正則表示的串則可以用\0來表示.) 正則表達中最多可以標記9個塊.
比如:
查找(john|smith), 則john或smith都符合條件, 而如果查找john|smith, 則只有johnmith或者johsmith符合條件
查找(h.*o) (f.*s), 如果找到"hello folks", 則\2 \1可以將它替換為"folks hello"
[xyz]
單字符集, 方括號內為字符集的成員. 單字符集塊表示該位置為一個該集中的字符
備注: 單字符集中的特殊字符:
除-, ^, ]和\外, 所有(特殊)字符在[]內都表示常意:
* 單個出現的-表示其常意(即字符"-"), 而x-y形式則表示ascii碼在ascii(x)和ascii(y)之間(inclusive)的字符.
* ^表示后繼的所有字符為取非, 即比如[a-z^b]表示除b外所有小寫字母
* 轉意符仍舊有效, 如[\t\n]表示該字符為tab或換行
* \\, \], \^, \-分別表示\, ], ^, -
比如:
[0-9a-z]表示任意數字或字母,
[a-z^e-h]表示非efgh的小寫字母,
[^\^\]]表示非^和]的任意字符(包括空白,換行等)
[(-*]表示(, )或* (ascii碼分別為40, 41, 42)
*轉意字符"\":
轉意字符(Escape character)\的作用是轉換(toggle)后續第一個字符的含意:
1. 常用的標識符
\d
表示一個數位字符, 等價與[0-9].
\D
表示一個非數位字符, 等價與[^0-9].
\f
表示一個form-feed字符(unix).
\n
表示一個linefeed字符(新行符).
\r
表示一個carriage return字符(復位符).
\s
表示任意一個非換行符的white space (空白字符), 包括空格, tab, form-feed等.
\S
表示一個非換行符的non-white space (非空白字符).
\t
表示一個tab.
\v
表示一個縱向tab (unix).
\w
表示任意一個顯示字符, 包括下劃線 (數字, 字母, 特殊符號等, 但不包括white space).
\W
表示任意一個非顯示字符(non-word character).
2. 如果下一個字符在語境中本身具有特殊含意, 轉意字符取消它的特殊含意
比如:
.原先代表任意字符, ]在[]塊中表示塊終止,而\.代表常意的點號, [\]]表示]