正则表达式入门

在线匹配工具

  1. http://rubular.com

  2. 开源中国

正则语法

1.限定词
  • 默认斜杠,理论上任何成对的字符都可以作为限定符
2.元字符(用来表示内容的语法)
  • 字符本身,就是自身模式

  • 字符组

    • [xyz] 匹配若干字符之一
    • 字符组元字符
    • [0-9],[a-z] 在集合中 -(连字符)表示一个范围
    • [^abc] 排除型字符组 不等于abc的任意字符
  • . 表示任意(除了换行符\n)的一个字符

  • | 或(多选结构)

  • (…) 括号 限制竖线的作用范围

  • < > 单词起始/结束位置 可能不支持

  • \w 字母数字下划线

  • \d 任意的数字

  • \s 任意的空白字符,空格,制表符(TAB) 垂直制表符(V-TAB)

  • \t 制表符

  • \n 换行符

  • \r 回车符

  • 以上转义字符,如果大写表示取反

  • \W 除了字母数字下划线

  • \D 除了数字

  • \S 除了空白字符

  • \A 匹配开头

  • \z 匹配结尾

  • 语义字符(这类元字符称为断言字符

    • ^ 匹配开头
    • $ 匹配结尾
3.量词
  • 元字符出现的次数
  • {m, n} 闭区间,字符数量区间
  • {m} 出现恰好 m 次
  • {m,} m 次以上
  • 快捷数量词
    • * {0,n} 任意次数,可以为0次
    • + {1,n} 至少一次,没有上限
    • ? {0,1} 一次或者0次
    • .+ 可以匹配至少一个空格
    • 贪婪和懒惰
    • 直接在元字符后使用问号,为量词
    • 在量词后使用问号,问号为行为控制元字符,模式改变
4.模式修订符(放在结尾限定符之后)
  • U 将正则中的所有量词,全部改为懒惰模式(仅php)
  • i 大小写忽略 ignore-case
  • x 忽略空白字符
  • u 匹配utf8编码 4e00-9fa5 /\x{4e00}-\x{9fa5}/
  • m 多行模式,所有数据看作一行
    • 设置这个修饰符,模式中的点号元字符匹配所有字符,包括换行,没有这个修饰符,点号不匹配换行符
  • s 单行模式 会匹配到\n
    • 目标字符串是由单行字符组成(实际上可能包含多行),^ 仅匹配字符串开始位置,$仅匹配字符串末尾。当这个修饰符设置后,“行首”,和”行末“就会匹配目标字符串中任意换行符(\n)之前之后
5.括号及反向引用
  • 括号中的引用会被捕获,通过\1,\2…等获取相应的捕获文本
  • 不捕获 在子模式中加 ?:
6.断言
  • 零宽断言,不占用任何字符
  • 行首断言 ^
  • 行尾断言 $
  • 前瞻积极断言 (?=string) 向前匹配到string 则成功
  • 前瞻消极断言 (?!string) 向前匹配不到string则成功
  • 后瞻积极断言 (?<=string)
  • 后瞻消极断言 (?<!string)
7.转义说明
  • \加上元字符,表示匹配元字符所使用的普通字符
  • \加上非元字符,组成一种由具体实现方式规定其意义的元字符序列
  • \加上任意其他字符,默认情况就是匹配此字符(反斜线被忽略)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值