正则表达式
一、什么是正则
定义:一套匹配字符串的规则
- 检测一段字符串是不是合法
- 从一个大文件中找到所有符合规则的内容
原字符 自能匹配一个字符
正则 | 说明 |
---|---|
[a-z] [A-Z] [0-9] [sadfsdaf] | 匹配括号内任意字符 |
\d | 0-9的任意数字 |
\w | 匹配所有数字字母下划线 |
\s | 匹配所有空白 |
\D | 匹配所有非字符串 |
\S | 匹配所有非空白 |
. | 匹配除了换行符之外的所有 |
^ | 以什么什么开头的 |
$ | 以什么什么结尾的 |
^aa$ | 只能匹配aa |
| | 匹配|左右或者右边的字符 |
\ | 转义符号 |
() www.(aa|bb|cc).com | 定义或的作用域 |
量词,匹配多少次
header 1 | 说明 |
---|---|
匹配n次 \d{2}匹配一个两位数字 | |
表示至少匹配n次 | |
表示至少匹配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就停下来
转义符 \
-
原本有特殊意义的字符,到了他表示本身意义的时候,需要转义
-
有一些特殊意义的内容,放在字符组中,会取消他的特殊意义
- [() . * +?] 所有内容都会取消他的特殊意义
本文来自博客园,作者:EJW,转载请注明原文链接:https://www.cnblogs.com/ejjw/p/13417736.html