日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

正则表达式re模块

發布時間:2025/4/5 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则表达式re模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

請從以下文件里取出所有的手機號:
姓名 地區 身高 體重 電話
況詠蜜 北京 171 48 13651054608
王心顏 上海 169 46 13813234424
馬纖羽 深圳 173 50 13744234523
喬亦菲 廣州 172 52 15823423525
羅夢竹 北京 175 49 18623423421
劉諾涵 北京 170 48 18623423765
岳妮妮 深圳 177 54 18835324553
賀婉萱 深圳 174 52 18933434452
葉梓萱 上海 171 49 18042432324
杜姍姍 北京 167 49 13324523342

f = open("聯系方式.txt",'r',encoding="gbk") phones = [] for line in f:name,city,height,weight,phone = line.split()if phone.startswith('1') and len(phone) == 11:phones.append(phone) print(phones)

更簡單的如下:

import re phone_list = re.findall("[0-9]{11}",f.read()) print(phone_list)

re.match 從頭開始匹配

re.search 匹配包含 , 有一個就返回

re.findall 把所有匹配到的字符放到以列表中的元素返回

# '.'默認匹配除\n之外的任意一個字符,若指定flag DOTALL,則匹配任意字符,包括換行 # print(re.search(".","alex")) # print(re.search(".","alex").group()) # print(re.search(".","\n"))# '^'配字符開頭,'$'匹配字符結尾 # print(re.search("^alex","alexli")) # print(re.search("^alex","alexli").group()) # print(re.search("^alex$","alexli"))# '*'匹配*號前的字符0次或多次 # print(re.search("a*","ddddd")) # print(re.search("a*","addddd")) # print(re.search("a*","aaaaddddd"))# '+'匹配前一個字符1次或多次 # print(re.search("a+","aaaaaddsaaadd")) # print(re.search("a+","ddsaaadd")) # print(re.search("a+","dddd"))# '?'匹配前一個字符1次或0次 # print(re.search("a?","aaadddd")) # print(re.search("a?","dddd"))# '{m}'匹配前一個字符m次 # print(re.search("a{3}","aaddddd")) # print(re.search("a{3}","aaaddddd"))# '{n,m}' 匹配前一個字符n到m次 # print(re.search("a{3,5}","aaadddddd")) # print(re.search("a{3,5}","aaaaaaddadddd")) # print(re.findall("ab{1,3}","abbabcabbcbbb")) # '|' 匹配|左或|右的字符 # print(re.search("abc|ABC","ABCBabcCD")) # print(re.search("absc|ABsC","ABCBabcCD"))# '(...)' 分組匹配 # print(re.search("(abc){2}a(123|45)", "abcabca456c").group()) # print(re.search("(abc){2}a(123|45)", "abcabca123c")) # print(re.search("(abc){2}a(123|45)", "abc-abca123c"))# '\A'只從字符開頭匹配 # print(re.search("\Aabc","alexabc")) # print(re.search("\Aabc","abcalexabc"))# '\Z' 匹配字符結尾,同$ # print(re.search("\Aabc\Z","abc"))# [] # print(re.search("[a-z]","jack")) # print(re.search("[a-zA-Z0-9]{3}","jack"))# \d'匹配數字0-9 # print(re.search("\d","sfdhohfow1454")) # print(re.search("\d{3}","sfdhohfow1454")) # print(re.search("\d+","sfdhohfow1454")) # '\D' 匹配非數字 # print(re.search("\D+","sfdhohfow1454")) # print(re.findall("\D+","sfdh2s23dfoh5fow1454")) # print(re.findall("\d+","sfdh2s23dfoh5fow1454"))# '\w'匹配[A-Za-z0-9],'\W'匹配非[A-Za-z0-9] # print(re.findall("\w+","sfwetfwsdfs56416")) # print(re.findall("\W+","sfwetfwsdfs56416")) # print(re.findall("\W+","sfwetfws=dfs56416"))# 's' 匹配空白字符、\t、\n、\r , # print(re.findall("\s","asdfsa\ndfsl\rjfdsld\t"))# '(?P...)' 分組匹配 # id_num = "371481199306143631" # print(re.search("([0-9]{3})([0-9]{3})([0-9]{4})", id_num)) # print(re.search("([0-9]{3})([0-9]{3})([0-9]{4})", id_num).groups()) # print(re.search("(?P<province>[0-9]{3})(?P<city>[0-9]{3})(?P<birthday>[0-9]{4})", id_num).groups()) # print(re.search("(?P<province>[0-9]{3})(?P<city>[0-9]{3})(?P<birthday>[0-9]{4})", id_num).groupdict())# print(help(re)) # re.split 以匹配到的字符當做列表分隔符 # print(re.split("[0-9]","sjfld3jlsdfs4lkjl5sljfdw22jljsl5")) # print(re.split("[0-9]{2}","sjfld3jlsdfs4lkjl5sljfdw22jljsl5")) # print(re.split("[a-z]","sjfld3jlsdfs4lkjl5sljfdw22jljsl5")) # print(re.findall("[0-9]","sjfld3jlsdfs4lkjl5sljfdw22jljsl5"))

re.sub 匹配字符并替換

# print(re.sub("abc","ABC","abcdefg")) # print(re.sub("abc","ABC","abcdefgabc",count=2)) # print(re.sub("abc","ABC","abcdefgabc")) # 默認全部替換 # print(re.sub("[a-z]","0","abcdefgabc")) # 默認全部替換 # print(re.sub("[a-z]","0","abcdeAfgabc")) # 默認全部替換

re.fullmatch 全部匹配 ,精確匹配

# print(re.fullmatch("[a-z]","sahfwehnkbn")) # print(re.fullmatch("a","sahfwehnkbn")) # print(re.fullmatch("a","a")) # print(re.fullmatch("aaaa","aaaa"))# p = re.compile("[0-9]{11}") # 先編譯好 # print(p.search("1234512346542354312"))# Flags標志符 # print(re.search("efg","alexEFG")) # print(re.search("efg","alexEFG",re.I)) # I,忽略大小寫# re.M(MULTILINE): 多行模式,改變’^’和’$’的行為 # print(re.search("^alex","mack\nalexjackrain")) # print(re.search("^alex","mack\nalexjackrain",re.M)) # print(re.search("^alex$","mack\nalex\njackrain",re.M))# re.S(DOTALL): 改變’.’的行為,使其還能匹配到\n # print(re.search(".","\n")) # print(re.search(".","\n",re.S))# re.split(pattern, string, maxsplit=0, flags=0) 用匹配到的值做為分割點,把值分割成列表 # s='9-2*5/3+7/3*99/4*2998+10*568/14' # print(re.split("[-\+\*/]",s))# import my_package # from my_package import testimport re# 驗證手機號是否合法 phone_pat = re.compile('^(13\d|14[5|7]|15\d|166|17[3|6|7]|18\d)\d{8}$') phone_pat = re.compile('^1[3-5]\d{9}$')while True:phone = input('請輸入您的手機號:')res = re.search(phone_pat, phone)if res:print('正常手機號')else:print('不是手機號')

總結

以上是生活随笔為你收集整理的正则表达式re模块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 伊人久久久久久久久久久久 | 97毛片| 男人靠女人免费视频网站 | 日韩精品亚洲精品 | 天天草夜夜操 | 国产高潮国产高潮久久久91 | 中文字幕人妻一区二区在线视频 | 国产尤物视频在线观看 | 亚洲第一成年人网站 | 国产免费一区二区三区免费视频 | 性――交――性――乱 | 欧美在线视频不卡 | 人人爽视频 | 久久y| 污色视频| 成av人片一区二区三区久久 | 99re在线精品 | 国产a视频免费观看 | 日本大尺度电影免费观看全集中文版 | 一级性生活黄色片 | 亚洲天堂2014 | 麻豆射区 | 亚洲成av人片在www色猫咪 | 制服丝袜影音先锋 | 爱如潮水3免费观看日本高清 | 日韩欧美一区二区三区 | 老牛影视一区二区三区 | 伊人亚洲 | 性欧美丰满熟妇xxxx性久久久 | 国产日韩欧美精品 | 国产永久免费视频 | 黄色大片91 | 国产欧美日韩在线观看 | 亚洲最大网 | 顶臀精品视频www | 日美韩一区二区三区 | 69精品丰满人妻无码视频a片 | 老司机午夜在线 | 日日燥夜夜燥 | 91一起草 | 大肉大捧一进一出好爽动态图 | 九九热国产视频 | 国产999在线| 成人在线一区二区 | 白丝美女被草 | 欧美日韩久久 | 久久高清内射无套 | 中文久久精品 | 成人黄色在线观看视频 | 亚洲成av人片一区二区梦乃 | 成年人免费观看网站 | 国产欧美一区二区三区免费看 | 人成免费 | 成人福利社 | 成人www. | 男女日皮视频 | 国产一区二区精彩视频 | 一级黄色免费网站 | 日本免费一级片 | 香蕉视频在线观看网站 | 美国av一区二区 | 自拍露脸高潮 | 寻找身体恐怖电影免费播放 | 最新高清无码专区 | 日韩欧美偷拍 | 丰满肉嫩西川结衣av | 久久精品视频免费 | 一级全黄裸体免费视频 | 欧美精品三区 | 亚洲精品尤物 | 亚洲欧美大片 | 91av在线视频播放 | 日本不卡网| 免费观看黄色一级视频 | 色婷婷av一区二区三 | 久久精品性 | 精品视频第一页 | 性欧美精品男男 | 能在线观看的av网站 | 亚洲第一区在线播放 | 岛国精品一区二区三区 | 双性受孕h堵精大肚生子 | 亚洲国产电影在线观看 | 国产在线观 | 久久国产影视 | 亚洲女人天堂网 | 黄色动漫在线观看 | 成人特级毛片69免费观看 | 久久久久爱 | 最新中文字幕第一页 | 超碰五月| 久久婷婷av | 白浆在线播放 | 精品国产一二三四区 | 色婷婷av一区二区三 | 1024亚洲| 催眠调教艳妇成肉便小说 | 女女同性女同一区二区三区九色 | 天天干天天操天天射 |