import re
# 1.如何获取huuh
# 2.使用非贪婪限定符
# 学习内容:
# 1. 通过group获取到我们匹配成功的字符串
# 2. 贪婪模式
'''
line = 'ahuuhhaaahang123'
# group() 同group(0)就是匹配正则表达式整体结果
# group(1) 列出第一个括号匹配部分,group(2) 列出第二个括号匹配部分,group(3) 列出第三个括号匹配部分。
match_res = re.match('a.*h', line)
if match_res:
print(match_res)
print(match_res.group(0)) # ahuuhhaaah
print('ok')
else:
print('no')
'''
'''
# 1. 想要获取huuh
# 学习内容:
# 1. 括号代表一个字串
# 2. group(0)匹配到的字符串
# 3. group(1)匹配到的是第一个我们遇到的括号内的内容
line = 'ahuuhhaaaahuang12344'
match_res = re.match('a(huuh)(.*)',line)
if match_res:
print(match_res)
print(match_res.group(0)) #ahuuhhaaaahuang12344
print(match_res.group(1)) #huuh
print(match_res.group(2)) #haaaahuang12344
print('ok')
else:
print('no')
'''
'''
# search 扫描整个字符串并返回第一个成功的匹配。
# re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;
# 而re.search匹配整个字符串,直到找到一个匹配。
line = 'ahuuhhaaaahuang12344'
match_res = re.search('huuh',line)
match_res2 = re.search('huuh',line).span()
print(match_res2) # (1, 5)
if match_res:
print(match_res)
print(match_res.group(0)) #ahuuhhaaaahuang12344
print('ok')
else:
print('no')
'''
'''
# 2.使用非贪婪限定符
# \/? 有或没有 / 字符
# (?:) 匹配组,
# ?:用於标记该匹配组不应被捕获
# \? 一个 ? 字符
# (?:\?.*)? 有或没有均可
line = 'ahuuhhaaahang123'
# 当 ? 遇到 * 他就不贪婪了
match_res = re.match('a.*?ha',line)
if match_res:
print(match_res)
print(match_res.group(0)) # ahuuhha
print('ok')
else:
print('no')
'''
今天学习的主要有 group search ? 具体用法看注释。