iT邦幫忙

1

工程師菜鳥_宇弟的 學習筆記 [Python] 07 - [Python] [regular expression] 的應用,找特定資料,或限制輸入的格式

jton 2022-10-25 18:31:311144 瀏覽
  • 分享至 

  • xImage
  •  

[Python] 之旅第7天

實用練習

  • 練習1- 用[regular expression] 找特定資料 ,將電話號碼的輸入限制為電話格式
  • 公式- regular expression 正則表達式
  • 練習2- 用[regular expression] 將地址中的特定資料,ex:戶號取出來

練習1- 用[regular expression] 找特定資料 ,將電話號碼的輸入限制為電話格式
用[regular expression] 找特定資料 ,這次的核心技術是 - <re.match> 跟 <regex.search>

  • 以下的代碼能根據用戶給的電話 (在x裡),有程式能"找和比較特定資料",並"比較是否為我們要的格式"
# 我試圖將電話號碼的輸入限制為:
# 1-16 位數字或
# 單個“+”後跟 1-16 位數字。
import re

txt = "amy電話09777777777"
x = re.match(str("(\+?[0-9]{1,16})"), txt)
 
if x:
  print("YES! We have a match!")
else:
  print("No match")

成果會長這樣喔:

  • 輸入x為: +854
    https://ithelp.ithome.com.tw/upload/images/20221025/20153034EsoGqLhU4z.png

  • 輸入x為: 0977777777
    https://ithelp.ithome.com.tw/upload/images/20221025/20153034Qd87KVzGxd.png

  • 輸入x為: amy電話09777777777
    https://ithelp.ithome.com.tw/upload/images/20221025/20153034Tn6RUr8jWg.png

那就可以確保人為輸入錯誤或機器吃到不符合預期的資料格式而報錯囉


公式- regular expression 正則表達式

好用教學推薦
簡易 Regular Expression 入門指南:
https://blog.techbridge.cc/2020/05/14/introduction-to-regular-expression/


練習2- 用[regular expression] 將地址中的特定資料,ex:戶號取出來

  • 以下的代碼能根據用戶給的地址 (在string裡),有程式能"取出想要的資料區段"
import re
string='臺中市南屯區埔興段35-12地號'
regex = re.compile(r'段(\d+-*\d*)')
match = regex.search(string)
print(match.group(1))

成果會長這樣喔:
https://ithelp.ithome.com.tw/upload/images/20221025/201530343f7PfVxeNU.png
有乾脆的把戶號/地號給分離出來--> 35-12

https://ithelp.ithome.com.tw/upload/images/20221025/20153034uWBXDsTuOa.png
有乾脆的把戶號/地號給分離出來--> 122


其他貼文~~
(變強,就從小小的累積開始)

[Python] 之旅第1天 - python環境
https://ithelp.ithome.com.tw/articles/10296280

[Python] 之旅第2天-用 [Python] 跟 [Flask] 為基礎,把 URL input 抓出來
https://ithelp.ithome.com.tw/articles/10296290

[Python] 之旅第3天- 用 [Python] 跟 [Flask]
https://ithelp.ithome.com.tw/articles/10296965

[Python] 之旅第4天- [Python] [Flask] 的應用
https://ithelp.ithome.com.tw/articles/10303948

[Python] 之旅第5天- [Python] [Flask] 的應用, 日期計算 及日期報錯篇
https://ithelp.ithome.com.tw/articles/10309202

[Python] 之旅第6天- [Python] [Flask] 的應用, 比較有小數點圓的面積大小,簡易請假系統製作
https://ithelp.ithome.com.tw/articles/10309352

[Python] 之旅第7天- [Python] [regular expression] 的應用,找特定資料,或限制輸入的格式
https://ithelp.ithome.com.tw/articles/10309371


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言