正则表达式用法简介

正则表达式是对字符串操作的一种逻辑公式,使用它对字符串进行匹配和过滤.

在线测试工具http://tool.chinaz.com/regex/

1. 字符组
字符组很简单用[ ]括起来. 在[ ]中出现的内容会被匹配. 例如:[abc] 匹配a或b或c
如果字符组中的内容过多还可以使用- , 例例如: [a-z] 匹配a到z之间的所有字母 [0-9]
匹配所有阿拉伯数字

2. 简单元字符

. 匹配  除换行符以外的任意字符
\w 匹配   字母或数字或下划线
\s 匹配   任意的空白符
\d 匹配   数字
\n 匹配⼀一个换行行符
\t 匹配⼀一个制表符
\b 匹配⼀一个单词的结尾
^ 匹配字符串的开始
$ 匹配字符串的结尾
\W 匹配⾮非字母或数字或下划线
\D 匹配⾮非数字
\S 匹配⾮非空白符
a|b 匹配字符a或字符b
() 匹配括号内的表达式,也表示一个组
[...] 匹配字符组中的字符
[^...] 匹配除了了字符组中字符的所有字符

3. 量词

* 重复零次或更多次
+ 重复⼀一次或更多次
? 重复零次或⼀一次
{n} 重复n次
{n,} 重复n次或更更多次
{n,m} 重复n到m次

4. 惰性匹配和贪婪匹配
在量词中的*, +,{} 都属于贪婪匹配. 就是尽可能多的匹配到结果.

在使用 . *后面如果加了? 则是尽可能的少匹配. 表示惰性匹配

5. 分组
在正则中使用()进行分组.

6.转义

在正则表达式中, 有很多有特殊意义的是元字符, ⽐比如\n和\s等,如果要在正则中匹
配正常的"\n"⽽而不是"换行符"就需要对"\"进行转义, 变成'\\'.在python中, 无论是正则表达式, 还
是待匹配的内容, 都是以字符串的形式出现的, 在字符串中\也有特殊的含义, 本身还需要转
义. 所以如果匹配一次"\n", 字符串串中要写成'\\n', 那么正则里就要写成"\\\\n",这样就太麻烦了.
这个时候我们就用到了了r'\n'这个概念, 此时的正则是r'\\n'就可以了.

猜你喜欢

转载自www.cnblogs.com/ppf3678/p/9767276.html