正则表达式学习笔记
字符:
. 匹配除换行符外所有的字符
\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('\d\w\d','a2b3c4d5') l = re.findall('\d+\w\d+','a2b3c4d5') s = re.findall('\d+\w\d+','a2345b6543') print(r) print(n) print(l) print(s)