正则表达式学习笔记

字符:

.   匹配除换行符外所有的字符

w 匹配字母或 数字或 下划线或汉子  大写的相反

d 匹配数字  大写的相反

s 匹配空格  大写的相反

^ 匹配字符串的开头

$  匹配字符串的末尾

次数:

*  0-多次

+ 1到多次

? 0或1次

{n} 重复n此

{n,} 重复n到更多次

{n-p} 重复n-p次

match    匹配开头 匹配成功 返回一个 不成功 返回None

无分组  

origin = "hello alex bcd abcd lge acd 19"
n = re.match('w+',origin)
print(n.group())

有分组

origin = "hello alex bcd abcd lge acd 19"
n = re.match('h(w+).*(?P<n1>d+)',origin)
print(n.groups())
print(n.groupdict())

search   浏览全局 匹配第一个 没有返回None

无分组

有分组 同match

findall  匹配全局  获取非重复的匹配列表 重复则返回最后一个 匹配规则有一个组 则以字符串形式返回组里面匹配的内容 如果多个组 以列表形式返回

ret = '451alex12564 hej'
r = re.findall('d+',ret)
print(r)
origin = "hello alex bcd abcd lge acd 19"
r = re.findall("a((w*)c)(d)", origin)
print(r)
n = re.findall('dwd','a2b3c4d5')
l = re.findall('d+wd+','a2b3c4d5')
s = re.findall('d+wd+','a2345b6543')
print(r)
print(n)
print(l)
print(s)
原文地址:https://www.cnblogs.com/koushuige/p/7853654.html