正則學習筆記

正則匹配字符串就是解析字符串的特徵,而後用正則的語言把它表達出來。正則表達式

推薦兩個我使用的文檔和工具:工具

正則表達式入門教程
正則表達式在線測試工具測試

位置(斷言)

\b      匹配單詞的開始或結束
^       匹配字符串(行)的開始
$       匹配字符串(行)的結束

字符

.       匹配除換行符(\n)之外的任意字符
\w      匹配字母數字下劃線或漢字
\s      匹配任意的空白符    
\d      匹配數字
\n      匹配換行
\r      匹配回車

數量

'*'      匹配零次或屢次
'+'      匹配一次或屢次
'?'      匹配零次或一次
{n}      重複n次
{n,}     重複n到n+次
{n,m}    重複n到m次

字符類

[character_group]           匹配character_group中任何的單個字符
[^character_group]          匹配不在character_group中的任何單個字符
[first-last]                匹配從第一個到最後一個的範圍中的任何單個字符

分組

(exp)               匹配exp,並捕獲文本到一個從 1 開始的序號中
(?<name>exp)        匹配exp,並捕獲文本到name命名組中
(?:exp)             匹配exp,不捕獲,不分配

(?=exp)             零寬度正預測先行斷言,匹配exp前面的位置
(?!exp)             零寬度負預測先行斷言,匹配後面跟的不是exp的位置
(?<=exp)            零寬度正回顧後發斷言,匹配exp後面的位置
(?<!exp)            零寬度負回顧後發斷言,匹配前面不是exp的位置

(?>exp)             非回溯(也稱爲「貪婪」)子表達式

反向引用

\num                後向引用。匹配編號子表達式的值
\k<name>            命名後向引用。匹配命名錶達式的值。

選項

i      不區分大小寫
m      多行模式(一行至關於一個字符串)
s      單行模式(多行至關於一行)
相關文章
相關標籤/搜索