正则表达式

一、什么是正则

定义:一套匹配字符串的规则

  • 检测一段字符串是不是合法
  • 从一个大文件中找到所有符合规则的内容

原字符 自能匹配一个字符

正则 说明
[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就停下来

转义符

  • 原本有特殊意义的字符,到了他表示本身意义的时候,需要转义

  • 有一些特殊意义的内容,放在字符组中,会取消他的特殊意义

    • [() . * +?] 所有内容都会取消他的特殊意义
原文地址:https://www.cnblogs.com/jiangjunwang/p/13417736.html