第十章 (小知識)正則表示式
阿新 • • 發佈:2021-11-24
認識正則表示式
正則表示式
''' 正則表示式是一門獨立的語言 跟其他程式語言都沒有關係!!!! 如果想在python程式碼中使用正則 需要藉助於內建模組re ''' # 什麼是正則表示式? 利用一些特殊的組合去字串中篩選出符合條件的資料 ''' 1.必須是11位 2.必須是純數字 3.必須符合手機號的排布 15 16 18 19 ''' # 傳統方法 phone = input('請輸入正確的手機號碼:').strip() if len(phone) == 11: if phone.isdigit(): if phone.startswith('15') or phone.startswith('16') or phone.startswith('17') or phone.startswith('18'): print('手機號正確') else: print('輸入錯誤') else: print('必須是純數字') else: print('請正確輸入手機號碼') # 正則表示式 import re phone = input('請輸入正確的手機號碼:').strip() if re.match('^(13|14|15|16|17)[0-9]{9}$',phone): print('輸入正確') else: print('輸入格式錯誤!')
字元組
# 特徵是使用中括號括起來的 字串預設只能單個單個字元匹配
[0123456789] # 匹配0到9之間任何一個數字
可以簡寫為
[0-9]
[a-z] # 匹配小寫字母a到字母z其中任意一個字母
[A-Z] # 匹配大寫字母A到字母Z其中任意一個字母
[a-zA-Z0-9] # 匹配所有的數字 小寫 大寫
特殊符號
# 特殊符號預設也只能單個單個字元匹配 . 匹配除換行符以外的任意字元 \d 匹配數字 ^ 匹配字串的開始 $ 匹配字串的結尾 '''^與$組合使用可以精準限制要查詢的資料''' a|b 匹配字元a或字元b () 匹配括號內的表示式也表示一個組(不會影響正則表示式的匹配單純的分組而已) [...] 匹配字元組中的字元、 [^...] 匹配除了字元組中字元的所有字元
貪婪匹配與非貪婪匹配
# 帶匹配的字串
<script>123</script>
# 正則表示式
<.*> '''預設貪婪匹配 儘可能多的匹'''
# 將貪婪變為非貪婪 只需要在量詞的後面加問號即可
<.*?> '''非貪婪匹配 儘可能少的匹配 結束條件有左右兩邊決定'''
還有很多方式不懂就問百度。