正则表达式学习笔记

字符:

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

\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)

 

posted @ 2017-11-17 21:46  口水哥  阅读(128)  评论(0编辑  收藏  举报