Python--每日正则(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MR_HJY/article/details/81711512
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('匹配失败')

'''
    匹配成功
    匹配成功
'''

猜你喜欢

转载自blog.csdn.net/MR_HJY/article/details/81711512
今日推荐