一、什么是正则
定义:一套匹配字符串的规则
- 检测一段字符串是不是合法
- 从一个大文件中找到所有符合规则的内容
原字符 自能匹配一个字符
正则 | 说明 |
---|---|
[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就停下来
转义符
-
原本有特殊意义的字符,到了他表示本身意义的时候,需要转义
-
有一些特殊意义的内容,放在字符组中,会取消他的特殊意义
- [() . * +?] 所有内容都会取消他的特殊意义