基础
字符组、匹配多个单词、区间、匹配特殊符号、匹配字母、取反、匹配空白、单词边界、快捷方式取反、开始和结束、任意字符、可选字符、可选任意字符、重复、开闭区间
实例 | 说明 |
---|---|
\d | 数字 |
\w | 字母大小写 |
\s | 空白字符 |
\b | 单词边界 |
\D | 非数字 |
\W | 非字母 |
$ | 字符串的结束 |
^ | 字符串的开始 |
[^] | 非 |
. | 任意字符 |
? | 前面的字符可有可无 |
.? | 任何一个字符可有可无 |
{x} | 重复x次 |
\d{3,4} | 可以匹配 3个或者4个数字,利用贪婪,尽可能匹配的多,优先匹配4个,如果想采用非贪婪,加上?—>\d{3,4}?—>只匹配3个就不匹配了 |
\d{x,} | 匹配x个以上的数字 |
+ | 相当于{1,} |
* | 相当于{0,} |
.+ | 后面1到无限个任意字符 |
.* | 后面0到无限个任意字符 |
进阶
分组、或者条件、非捕获分组、分组使用技巧、分组的回溯引用、回溯引用的实践、正向先行断言、反向先行断言、正向后行断言、反向后行断言
实例 | 说明 |
---|---|
() | 提取关键的数据 核心内容<div>(.*?)</div>可以提取<div>xx</div> 中的xx |
(|) | 或者 |
(?:表达式) | 分组但不提取 |
()()\1\2 | 表示ABAB式 \1表示第一个分组\2表示第二个分组 |
喜欢(?=你) | 提取喜欢,喜欢后面必须跟着你 |
喜欢(?!你) | 提取喜欢,喜欢后面没有你 |
(?<=我)喜欢(?=你) | 喜欢前面有我,喜欢后面有你 |
(?<!我)喜欢(?!你) | 喜欢前面没有我,喜欢后面没有你 |
总结
此笔记为博主刷题总结
刷题网站:https://codejiaonang.com/#/course/regex_chapter1/0/0