正则表达式学习总结,


概述

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。主要是用来做文本的复杂处理。

基础

1、标准字符集合

标 签 作用
d 任意一个数字,0-9中任意一个
D 除了数字,大写标识相反的意思
w 匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”
s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ fnrtv]
. 可以匹配任意字符

2、自定义字符集合

[] 方括号匹配方式,能够匹配方括号内的任意字符

符号 作用
[12A] 匹配“1”,“2”,“A”
1 匹配“a”,“b”,“c”之外的字符
[f-k] 匹配f到k之间的任意一个字符
2 匹配除A到F,0到3之外的字符或数字

3、修饰匹配次数的特殊符号

符号 作用
{n} 表达式重复n次
{m,n} 表达式至少重复m次,至多重复n次
{m,} 表达式至少重复m次
匹配表达式0次或者1次,相当于{0,1}
  • | 表达式至少出现一次,相当于{1,}
  • | 表达式至少出现零次,相当于{0,}

4、贪婪模式和非贪婪模式

贪婪模式:匹配的符合表达式的字符越多越好;
_
非贪婪模式:匹配字符越少越好,匹配的字符后加“?”修饰。
_

5、模式匹配

  • 忽略大小写
    _
  • 单行模式
    整个文本看作一个字符串
  • 多行模式
    文本按照行区分

6、字符边界

标题1 标题2
^ 表示字符串开始的地方
$ 表示字符串结束的地方
b 匹配一个单词的边界(单词边界两边没有其它字符)

_

高级

1、选择符和分组

符号 作用
\ 或的关系(竖线)
() 通过括号组织一组表达式

反向引用

nnn 每一对()会分配一个编号,使用()的捕获根据左括号的顺序从1开始自动编号,通过反向引用,可以对分组已捕获的字符串进行引用。
_
_

2、预搜索(零宽断言)

这个位置应该符合某个条件,判断当前位置的前后字符是否符合指定的条件,但不匹配前后的字符,是对位置的匹配。

标题1 标题2
(?=exp) 后面匹配表达式
(?<=exp) 前面匹配表达式
(?!exp) 断言此位置的后面不能匹配表达式exp
(? 前面不能匹配表达式

_

_

更多参考链接

正则表达式30分钟入门教程

正则表达式在线测试


  1. abc ↩
  2. A-F0-3 ↩

相关内容