正则匹配字符串就是解析字符串的特征,然后用正则的语言把它表达出来。
推荐两个我使用的文档和工具:
位置(断言)
\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 单行模式(多行相当于一行)