目录
前言
一.正则表达式概括
1.1简介
1.2使用场景
二.正则表达式语法
2.1基本匹配
2.2元字符
2.2.1点运算符.
2.2.2字符类[]
2.2.3否定字符类
2.2.4*号
2.2.5+号
2.2.6?号
2.2.7{}号
2.2.8()号
2.2.9|或运算
2.2.10转码特殊字符\
2.2.11^和$
2.3简写字符
前言
一个正则表达式的在线练习网站:
练习网站
学习正则表达式,一定要多加练习,效率翻倍!
一.正则表达式概括
1.1简介
正则表达式是一组由字母和符号组成的特殊文本,它可以用来从文本中找出满足你想要的格式的句子,正则表达式常用缩写是:“regex”、“regexp”
例如:寻找“T”开头的英文单词:
1.2使用场景
使用正则表达式可以很方便的帮我们在大量“字符串”中搜寻到我们想要的信息,如果我们爬取某个网站的HTML,需要当中的某个信息,可以使用正则表达式搜寻
再比如某些算法题牵扯到字符串,我们也可以使用正则表达式来匹配
二.正则表达式语法
2.1基本匹配
基本匹配很简单,比如我们就需要“the”这个单词,那么写下即可:
因此基本匹配,多用于我们需要一个“固定且唯一”的结果
2.2元字符
如果我们需要匹配动态变化的字符串,就需要用到元字符
而正则表达式也主要依赖于“元字符”实现复杂匹配
元字符介绍:
元字符 描述 . 句号匹配任意单个字符 [] 字符种类,匹配方括号内的任意字符 [^] 否定的字符种类,匹配除了方括号内字符的任意字符 * 匹配>=0个的重复的在*号前的字符 + 匹配>=1个的的重复的在+号前的字符 ? 标记?之前的字符为可选[匹配或不匹配] {n,m} 控制匹配数量,匹配num个大括号之前的字符或字符集(n<=num<=m) (xyz) 字符集,匹配与xyz完全相同的字符串 | 或运算符,匹配符号前或后的字符 \ 转义字符,匹配一些保留字符如“[]”、“()”、“+”、“?”等 ^ 从开头向末尾匹配 $ 从末尾向前匹配
下面开始依次介绍“13”种元字符
2.2.1点运算符.
.是元字符中最简单的元字符,.匹配任意单个字符,但不匹配换号符。
如“.he”用于匹配:“任意一个字符后跟着he”的字符串
2.2.2字符类[]
字符类[]也叫字符集,在方括号中的“连字符”来指定字符集的范围,在方括号中的字符不关心顺序,如果某个字符在字符集中出现过,那么该字符就会被匹配到,相当于编程中的如下伪代码
if s in 字符类:
s is a target
注意:如果在字符类中出现“.”,则此时表示匹配“.”号,而不是任意一个字符,这是因为字符类的优先级大于“.”点元字符!!
2.2.3否定字符类
匹配除了方括号内字符的任意字符,一般“^”放在句子开头,用于表示这个字符类是否定的
2.2.4*号
*号匹配在*之前出现大于等于0次的字符,也就是说使用*号可以匹配没有出现过的字符!!
可以看到“the”、“he”都被匹配到了,因为“t”此时可以出现一次,出现多次都是符合要求的!!
使用“.”和“*”搭配,可以匹配所有的字符串
2.2.5+号
+号匹配+号之前字符出现大于等于1次,也就是前面的字符至少出现一次!
2.2.6?号
?号表示在字符前面的字符为可选,即“出现1次”或“出现0次”,这与“*”号是有区别的,“*”号是“出现0次”或“出现n次”
2.2.7{}号
{}是一个范围量词,用来限定一个字符或一个字符集可以重复出现的次数
{}内可以是一个“固定值”,用来表示出现固定次数
也可以是一个[n,m]的区间,用来表示出现[n,m]次的都可以
固定值:
范围区间:
2.2.8()号
()号用于固定一组字符集,表示()内的字符串是一个整体,匹配时应按照整体进行匹配
2.2.9|或运算
或运算符是一个判断条件,只需要|运算符两边有一个满足条件就可以匹配,同时遵循编程语言中的“短路效应”
2.2.10转码特殊字符\
反斜线\在表达式中用于转码紧跟其后的字符,使后面的字符失去元字符的作用,成为一个待匹配的普通字符
(\s表示空格)
2.2.11^和$
^表示在字符串开头匹配,而&表示在字符串结尾匹配
不使用^和$时:
使用^后:
使用$后:
可以看到“$”和“^”只返回匹配到的第一个结果
2.3简写字符集
正则表达式提供了一些简写的字符集,用来帮助我们简化书写
简写字符集 描述 . 除换行符以外的所有字符 \w 匹配所有字母数字,等同于[a-zA-Z0-9] \W 匹配所有非字母数字,等同于[^a-zA-Z0-9] \d 匹配数字:[0-9] \D 匹配非数字:[^0-9] \s 匹配所有空格字符:[\t\n\f\r\p] \S 匹配所有非空格字符:[^\t\n\f\r\p] \f 匹配一个换页符 \n 匹配一个换行符 \r 匹配一个回车符 \t 匹配一个制表符 \v 匹配一个垂直制表符 \p 匹配\r\n相当于dos终止符
记忆方法:“小写的如s、d、w”表示所有,“大写的如S、D、W”表示所有非
“w” 即:“word”简写
“d”即:“digit”简写
“s”即:“space”简写