基本元字符
在正则表达式中可以使用元字符用以匹配字符串的各种可能的情况。
元字符 | 含义 |
---|---|
.(点) | 匹配除换行符以外的任意单个字符,如“r.d”会匹配“red”、“r d”,但不会匹配“read” |
* | 匹配位于之前的任意个字符,如“red”会匹配“rred”、“rrred”,“red”等 |
+ | 匹配位于+之前的一个或多个字符,如“re+d"会匹配”rred“、”rrred“,但不会匹配”red“ |
竖杠 | 匹配位于竖杠之前或之后的字符,如”red竖杠blue“,会匹配”red“或”blue” |
^ | 匹配行首 |
$ | 匹配行尾 |
? | 匹配?之前的零个或一个字符,如“r?d"会匹配”rd“或”rrd“ |
\ | 表示\之后的是转义字符 |
[] | 匹配位于[]中的任一字符,如r[ae]d会匹配rad或red |
() | 将()内的内容当作一个整体 |
{} | 按{}中的次数进行匹配 |
元字符还可以配合起来使用。".*“可以匹配任意个字符,”.+“可以匹配一个或多个任意字符,”.?"可以匹配零个或一个任意字符。
在[]中使用-还可以表示一个范围,如[a-z]表示从a到z的小写字母,[a-zA-Z0-9]表示任意字母和数字。
re模块函数应用
匹配与搜索
re.match()用于在字符串中匹配正则表达式,如果匹配成功,则返回MatchObject对象实例;
re.search()用于在字符串中查找正则表达式,如果找到,则返回MatchObject对象实例;
re.findall()用于在字符串中查找所有符合正则表达式的结果,并返回这些字符串的列表,如果在正则表达式中使用了组,则返回一个元组。
re.match()和re.search()的作用基本一样,不同的是,re.match()只从字符串中的第一个字符开始匹配,而re.search()则搜索整个字符串。
re.match(pattern, string, [, flags])
re.search(pattern, string, [, flags])
re.findall(pattern, string, [, flags])
参数含义如下:
pattern:匹配模式
string:要进行匹配的字符串
flags:可选参数,进行匹配的标志
参数flags的可选项包括:
flags | 含义 |
---|---|
re.I | 忽略大小写 |
re.L | 根据本地设置而更改\w,\W,\b,\B,\s,\S的匹配内容 |
re.M | 多行匹配模式 |
re.S | 使“.”元字符匹配换行符 |
re.U | 匹配Unicode字符 |
re.X | 忽略pattern中的空格,并且可以用#注释 |
上述的几个编译标志可以同时使用。同时使用几个编译标志时,需要使用|对并用的编译标志进行运算。
替换函数
re.sub()用于替换字符串中符合正则表达式的内容,它返回替换后的字符串。
re.subn()与re.sub()相同,不过返回一个元组。
re.sub(pattern, repl, string [, count])
re.subn(pattern, repl, string[, count])
参数含义如下:
pattern:正则表达式
repl:需要替换的内容
string:需要替换内容的字符串
count:可选参数,最大替换次数
分割字符串函数
re.split()用于分割字符串,它返回分割后的字符串列表。
re.split(pattern, string[, maxsplit=0])
参数含义如下:
pattern:正则表达式
string:
maxsplit:可选参数,最大分割次数
活着就给自己的生活找点乐子,自勉