一、什么是正则
定义:一套匹配字符串的规则
- 检测一段字符串是不是合法
- 从一个大文件中找到所有符合规则的内容
原字符 自能匹配一个字符
| 正则 | 说明 |
|---|---|
| [a-z] [A-Z] [0-9] [sadfsdaf] | 匹配括号内任意字符 |
| d | 0-9的任意数字 |
| w | 匹配所有数字字母下划线 |
| s | 匹配所有空白 |
| D | 匹配所有非字符串 |
| S | 匹配所有非空白 |
| . | 匹配除了换行符之外的所有 |
| ^ | 以什么什么开头的 |
| $ | 以什么什么结尾的 |
| ^aa$ | 只能匹配aa |
| | | 匹配|左右或者右边的字符 |
| 转义符号 | |
| () www.(aa|bb|cc).com | 定义或的作用域 |
量词,匹配多少次
| header 1 | 说明 |
|---|---|
| {n} | 匹配n次 d{2}匹配一个两位数字 |
| {n,} | 表示至少匹配n次 |
| {n,m} | 表示至少匹配n次,最多m次 |
| ? | 表示匹配0次或1次 |
| + | 表示1次或多次 |
| * | 表示0次或多次 |
| d+ | 整数 |
| d+. d+ | 小数 |
| d+.?d* | 整数或者小数 |
| d+(. d+)? | 分组的作用(. d+)? 表示 配0个或1个.和数字 |
-
贪婪匹配,在量词范围允许的情况下尽可能多的匹配 .*x 表示匹配任意字符,任意多次,遇到最后一个x才停下来 d{3,}6
-
非贪婪匹配(惰性),量词? d{3,}?6 遇到一个6就停止
-
.*?x 表示匹配任意字符,任意多次数,但是一旦遇到X就停下来
转义符
-
原本有特殊意义的字符,到了他表示本身意义的时候,需要转义
-
有一些特殊意义的内容,放在字符组中,会取消他的特殊意义
- [() . * +?] 所有内容都会取消他的特殊意义