定义
是对字符串操作的一种逻辑公式
1.给定的字符串是否符合正则表达式的过滤逻辑
2.可以通过正则表达式,从字符串种获取我们想要的特定部分
re模块
import re
s='abcdefg'
result=re.match('abc',s)
print(result)
print(re.search('cd',s))
print(re.match('cd',s))
print(re.search('cd',s).group())
match是匹配,即从第一个开始
search是查找,可以是任意位置,只有一个
findall可以查找多个
group是提取匹配到的内容,后面的小括号可以用来分组
,从1开始
sub是替换
split是切割
字符
\A:表示从字符串的开始处匹配
\Z:表示从字符串的结束处匹配,如果存在换行,只匹配到换行前结束的字符串
\b:匹配一个单词的边界,也就是指单词和空格间的位置。例如,‘py\b’可以匹配‘python’中的‘py’,但是不能匹配‘openpyxi’中的‘py’
\B:匹配非单词边界。和上面一个相反
\d:匹配任意数字,等价与[0-9]
\D:匹配任意非数字字符,等价与[^\d]
\s:匹配任意空白字符,等价于[\t\n\r\f]
\S:匹配任意非空白字符,等价于[^\s]
\w:匹配任意字母数字以及下划线,等价与[a-zA-A0-9]
\W:匹配任意非字母数数字以及下划线,等价于[^\w]
\:匹配愿义的反斜杠\
‘.’:用于匹配除换行符\n之外的所有字符
‘^’:用于匹配字符串的开始,即行首
‘$’:用于匹配字符串的末尾(末尾如果有换行符\n,就匹配\n前的字符),即行尾
‘*’:用于将前面的模式匹配0次或多次(贪婪模式,即尽可能多的匹配)
‘+’:用于将前面的模式匹配1次或多次(贪婪模式)
‘?’:用于将前面的模式匹配0次或1即(贪婪模式)
‘+?,星?,??’:即上面三种特殊字符的非贪婪模式(尽可能少的匹配)
‘{m,n}’:用于将前面的模式匹配m次到 n次(贪婪模式),即最小匹配m次,最大匹配n次
'{m,n}?'即上面一种的非贪婪模式
‘\’:‘\’是转义字符,在特殊字符前面加上\,特殊字符就失去了其所代表的含义,比如+就仅仅代表+本身
‘[]’:用于表示一组字符,如果是第一个字符,就表示的是一个补集。比如[0-9]表示所有的数字,[0-9]表示除数字以外的字符
‘|’:比如A|B用于匹配A或B
‘(…)’:用于匹配括号中的模式,可以在 字符串中检索或匹配我们所需的内容
n,表示引用第n个匹配
?P<名>:命名
?P=名:引用命名的那个
import re
s='会fewd耗213费无双13abc321defg'
result =re.findall('[0-9][a-z]',s)
print(result)
import re
s='会fewd耗213费无双13abc321defg'
result =re.findall('[0-9]+[a-z]',s)
print(result)
在那个后面就控制那个
‘\.’ 匹配 ‘.’