import re
# 1.以 h 开头
line = "huang123"
match_res = re.match('huang123',line)
if match_res:
print('匹配成功') #√
else:
print('匹配失败')
match_res = re.match('huang',line)
if match_res:
print('匹配成功') #√
else:
print('匹配失败')
line = 'huang'
match_res = re.match('huang123',line)
# print(match_res)
if match_res:
print('匹配成功')
else:
print('匹配失败') #√
'''
匹配成功
匹配成功
匹配失败
'''
这个是普通的正则匹配规律,规则就是从左到右依次匹配,只要和规则字符串一一对应即为正确,被验证的字符串可以比规则多,但是不能比规则字符串少。
# 2.以 h 开头后面跟着一个字符( . 可以匹配任意字符 )
line = 'h123456'
match_res = re.match('h.',line)
# print(match_res)
if match_res:
print('匹配成功')
else:
print('匹配失败')
line = 'h'
match_res = re.match('h.',line)
# print(match_res)
if match_res:
print('匹配成功')
else:
print('匹配失败')
'''
匹配成功
匹配失败
'''
' . '是指任意一个字符(除了换行符(\n\r)以外的所有字母、符号、数字、汉字都可)
# 2.1 以 h 开头后面必须跟着一个 ' . '
# 反斜杠 / 是转义字符
line = 'h123456'
line2 = 'h.123456'
match_res = re.match('h\.',line)
# print(match_res)
if match_res:
print('匹配成功')
else:
print('匹配失败')
match_res = re.match('h\.',line2)
# print(match_res)
if match_res:
print('匹配成功')
else:
print('匹配失败')
'''
匹配失败
匹配成功
'''
' \ ' 是转义字符,即把一些原本有特殊意义的字符变的不再有特殊意义 所以,‘ h\. ’ => ' h. ' 使得 . 就是普通的点而已
# 2.2 以 h 开头后面必须跟着一个'\'
# 'h\\'计算机内部代表的字符串就是 'h\'
line = 'h\\'
print(len(line))
# 'h\\\\' 计算机内部代表的字符串就是 'h\\'
line2 = 'h\\\\'
print(len(line2))
# 反斜杠 / 使我们的第二个特殊字符匹配的时候,字符串内部的 \ 被挡住转义字符
# h\\能够匹配的字符串就是h\
match_res = re.match('h\\\\',line)
# print(match_res)
if match_res:
print('匹配成功')
else:
print('匹配失败')# 2.3 以h开头后面只跟着一个字符
line = 'h2k'
# $ 特殊字符.
match_res = re.match('h.$', line)
# 需要匹配的字符串, 能不能符合结果
if match_res:
print('匹配成功')
else:
print('匹配失败')
'''
2
3
匹配成功
匹配失败
'''
有时候会遇到一些特殊需求,比如把转义字符 \ 转义, 把 \ 变的没有意义 即为普通的字符。计算机中去识别的时候,‘ \\ ’ => ' \ '
# 2.3 以h开头后面只跟着一个字符
line = 'h2k'
# $ 特殊字符.
match_res = re.match('h.$', line)
# 需要匹配的字符串, 能不能符合结果
if match_res:
print('匹配成功')
else:
print('匹配失败')
line = 'h2'
match_res = re.match('h.$', line)
# 需要匹配的字符串, 能不能符合结果
if match_res:
print('匹配成功')
else:
print('匹配失败')
'''
匹配失败
匹配成功
'''
$ 为结束符号
# 3. 以 h 开头后面跟着任意数量的数字
line = 'h12'
# \d 任意的0-9的数字 *前面的那一个匹配的东西,0-n次
match_res = re.match('h\d*', line)
# 需要匹配的字符串, 能不能符合结果
if match_res:
print('匹配成功')
else:
print('匹配失败')
'''
匹配成功
'''
' h\d* ' 即 h 后面可以跟任意字符,长度任意
# 4.以3结尾
line = 'hh432432pp3'
match_res = re.match('.*3$', line)
# 需要匹配的字符串, 能不能符合结果
if match_res:
print('匹配成功')
else:
print('匹配失败')
line = 'hh432432pp'
match_res = re.match('.*3$', line)
# 需要匹配的字符串, 能不能符合结果
if match_res:
print('匹配成功')
else:
print('匹配失败')
'''
匹配成功
匹配失败
'''
‘ .*3$ ’ 匹配的是任意一个以3结尾的任意字符串
# 5. 以 h 开头,以 3 结尾,中间只有一个字符
line = 'hi3'
# ^ 代表着这里的开头
match_res = re.match('h.3$', line)
# 需要匹配的字符串, 能不能符合结果
if match_res:
print('匹配成功')
else:
print('匹配失败')
line = 'hii3'
match_res = re.match('h.3$', line)
# 需要匹配的字符串, 能不能符合结果
if match_res:
print('匹配成功')
else:
print('匹配失败')
'''
匹配成功
匹配失败
'''
# 6.以 h 开头,以 3 结尾, 中间可以存在任意数量的字符串
line = 'h3'
match_res = re.match('h.*3$', line)
# 需要匹配的字符串, 能不能符合结果
if match_res:
print('匹配成功')
else:
print('匹配失败')
line = 'hewqeqwe2323'
match_res = re.match('h.*3$', line)
# 需要匹配的字符串, 能不能符合结果
if match_res:
print('匹配成功')
else:
print('匹配失败')
'''
匹配成功
匹配成功
'''