Python :正则表达式(1)

#正则表达式
需要调用的模块 : 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']

猜你喜欢

转载自blog.csdn.net/Mr_zhangbz/article/details/83418065