大zha好,我有一大波小贴士系列陆不续分享。都是以前懵懂期的笔记,而且还是手写的,偶尔翻出来看看,觉得还是挺有用的。避免丢失,就毫不脸红地放这了,走过路过的朋友们千万不要放过我(强行达成共识)。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ca7bc2d60e10064228b4eb5b74266942.png)
- 限定符(量词):
表达式 | 匹配次数 | 匹配类型 |
---|
* | 0次或多次 | 贪婪型 |
+ | 1次或多次 | 占有型 |
? | 0次或1次 | 懒惰型 |
{n} | n次 | |
{n,} | n次或多次 | |
{n,m} | n次到m次 | |
- 定位符:
^和$分别指字符串的开始与结束
\b指单词前或后边界
不能对定位符使用限定符 - 捕获分组:
表达式 | 说明 |
---|
(exp) | 匹配exp,并捕获文本到自动命名的分组里 |
(?<name>exp) | 匹配exp,并捕获文本到名称为name的分组里 |
(?:exp) | 匹配exp,不捕获文本,也不给此分组分配组号 |
(?=exp) | 匹配exp前面的(零宽前瞻断言),如(?<name>.+(?=what))取what前所有字符到name分组里 |
(?<=exp) | 匹配exp后面的(零宽后顾断言),如(?<name>(?<=what).+)取what后所有字符到name分组里 |
(?!exp) | 匹配后面跟的不是exp的(零宽负前瞻断言),如\d{3}(?!\d)找3位数字后非数字的 |
(?<!exp) | 匹配前面不是exp的(零宽负后顾断言),如(?<!\d)\d{3}找3位数字前非数字的 |
- 正则表达式中可以使用AscⅡ编码。
- 常用字符:
表达式 | 说明 |
---|
\s | space,匹配任何空白字符(包括空格、制表符、换页符) |
\S | 匹配任何非空白字符 |
\w | whipptree,匹配包括下划线的任何单词字符(包括数字) |
\W | 匹配任何非单词字符 |
/i | ignore,忽略大小写 |
/g | global,全文查找 |
/m | multi,多行查找 |