Python 每日正則(一)

2021-08-23 14:36:26 字數 4495 閱讀 1474

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('匹配失敗')

''' 匹配成功

匹配成功

'''

Python 每日正則(二)

import re 1.如何獲取huuh 2.使用非貪婪限定符 學習內容 1.通過group獲取到我們匹配成功的字串 2.貪婪模式 line ahuuhhaaahang123 group 同group 0 就是匹配正規表示式整體結果 group 1 列出第乙個括號匹配部分,group 2 列出第二個...

python每日一練

人生苦短,我用python 2018.6.5 有個目錄,裡面是你自己寫過的程式,統計一下你寫過多少行 包括空行和注釋,但是要分別列出來 coding utf 8 import re import glob defcodecolletion path filelist glob.glob path p...

Python每日一練

人生苦短,我用python 2018.6.13 最近事情有點多,有幾天沒寫了,正好最近需要統計一下各組排名,也就拿python代替手工了 各組給出其他組的排名,統計每個組最終的得分,第一名為0.5,第二名0.4,以此類推。coding utf 8 groups 3,2,5,4,6 1,3,5,6,4...