#正则表达式
需要调用的模块 : import re
#函数参数:
patter :需要匹配的正则表达式
string:需要匹配的字符串
flags :标志位,用于控制正则的匹配方式
{
re.I :忽略大小写
var = re.match("www","Www.baidu.com.",flags=re.I)
print(var)
结果:<re.Match object; span=(0, 3), match='Www'>
var = re.match("www","www.baidu.com.",flags=re.I)
print(var)
结果:<re.Match object; span=(0, 3), match='www'>
re.L :本地化识别
re.M : 多行匹配,影响 ^ 和 $
re.S : "."匹配包括任意的字符
re.U :根据Unicode影响 \w \W \b \B
re.X :更灵活的方式理解正则表达式
}
#re.match() :扫描整个字符串从起始位置匹配一个模式,如果起始位置没有或者非起始位置起始返回None
# 需求:判断"www.baidu.com"是否已"www"开头
var = re.match("www","baidu.com.www")
print(var)
结果:None
#re.search():扫描整个字符串,返回第一个匹配成功的模式
val= re.search("www","Hello,welcome visit www.baidu.com,www")
print(val)
结果:<re.Match object; span=(20, 23), match='www'>
#re.findall():扫描整个字符串匹配所有的模式,并返回结果列表
参数:
value = re.findall("www","Hello,welcome visit www.baidu.com,www")
print(value)
结果:['www', 'www']
#正则表达式的元字符
(1)匹配单个字符与数字
“.” : 匹配除换行符外的任意字符
str = "Hello,I am coming"
var =re.match(".",str)
print(var)
结果:<re.Match object; span=(0, 1), match='H'>
value = re.search(".",str)
print(value)
结果:<re.Search object; span=(0, 1), match='H'>
val = re.findall(".",str) #返回结果列表
print(val)
结果:['H', 'e', 'l', 'l', 'o', ',', 'I', ' ', 'a', 'm', ' ', 'c', 'o', 'm', 'i', 'n', 'g']
[]: 表示匹配所包含的任意字符
[a-z],[A-Z],[0-9],[0-9a-zA-Z]
^脱字符
[^Hello] :除了Hello的所有字符 [^0-9]
\d 同 [0-9]
\D 同 [^0-9]
\w [0-9a-zA-Z_]
\W [^0-9a-zA-Z_]
str = "Hello,I am coming"
val = re.findall("[^Hello]",str)
print(val)
结果:[',', 'I', ' ', 'a', 'm', ' ', 'c', 'm', 'i', 'n', 'g'] #注意空格
\s 任意空白符 (\n \t …) 同 [ \f\n\r\t]
str = "Hello,I am coming" #注意空格的位置
val = re.findall("\s",str)
print(val)
结果:[' ', ' ']
\S 非空白符
str = "Hello,I am coming"
val = re.findall("\S",str)
print(val)
结果:['H', 'e', 'l', 'l', 'o', ',', 'I', 'a', 'm', 'c', 'o', 'm', 'i', 'n', 'g']