正则表达式是一种小型的,高度专业化的编程语言,内嵌在Python的中,通过重新模块实现,正则表达式被编译成一系列的字节码,由用Ç语言编写的匹配引擎执行。
1.普通字符:大多数字符和字幕都会和自身匹配
2.元字符:。^ $ +?[] {} | ()\
。 表示匹配任意一个字符(除了换行符),若要匹配两个或两个以上则为两个或多个点
import re
s ="asd4assd5and6aksd"
b = re.findall('a.d',s)
c = re.findall('a..d',s)
print(b) #['asd', 'and']
print(c) #['assd', 'aksd']
^ 表示从字符串开头开始匹配
s ="asd4assd5and6aksd"
b = re.findall('^a.d',s)
print(b) #['asd']
$ 表示从字符串末尾开始匹配
s ="asd4assd5and6aksd"
b = re.findall('a..d$',s)
print(b) #['aksd']
*表示匹配某个字符匹配0到无穷次
+ 表示匹配某个字符匹配1到无穷次
*和+为贪婪匹配,即有多少匹配多少
?表示匹配某个字符匹配0或1次
{} 表示匹配某个字符匹配任意次,包含以上+ *?所有情况
* +?为贪婪匹配,在其后加上?变成惰性匹配,按照最小值匹配
[]为或的意思,匹配其中任一项,其中里边除了 - \和^没有特殊符号
注意1:其中[a-z]表示一个a到z中任意字符
注意2:其中[^ A-Z]表示匹配除了一个A到Z中的任意字符
\
反斜杠后边跟元字符去除特殊功能,如 \。
反斜杠后边跟普通字符实现特殊功能,如\ d
re.findall(“我\\ b”,“你好我是列表”)#['我']
re.findall(r“I \ b”,“你好我是列表”)#['I']加上r表示里边的所有内容都不转义
| 表示或的意思
()表示分组