正則匹配字串就是解析字串的特徵,然後用正則的語言把它表達出來。
推薦兩個我使用的文件和工具:
位置(斷言)
匹配單詞的開始或結束
^ 匹配字串(行)的開始
$ 匹配字串(行)的結束
字元
. 匹配除換行符(
)以外的任意字元
w 匹配字母數字下劃線或漢字
s 匹配任意的空白符
d 匹配數字
匹配換行
匹配回車
數量
`*` 匹配零次或多次
`+` 匹配一次或多次
`?` 匹配零次或一次
{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) 非回溯(也稱為“貪婪”)子表示式
反向引用
um 後向引用。匹配編號子表示式的值
k<name> 命名後向引用。匹配命名錶達式的值。
選項
i 不區分大小寫
m 多行模式(一行相當於一個字串)
s 單行模式(多行相當於一行)