python正則手機號碼
❶ 使用python驗證常見的50個正則表達式
正則表達式是強大的文本處理工具,用於匹配符合特定模式的文本。Python通過re模塊提供了對正則表達式的全面支持。本文將介紹如何在Python中使用正則表達式,以及列舉了常見的50個正則表達式示例,涵蓋了郵箱、身份證號、手機號碼、固定電話、域名、IP地址、日期、郵編、密碼、中文字元、數字和字元串等場景。
例如,郵箱正則表達式用於匹配包含字母、數字、下劃線、點號或中劃線,並帶有'@'符號的地址,如"[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)"。身份證號正則表達式則用於驗證18位或19位中國身份證號碼的格式,如"[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]"。
手機號碼、國內固定電話和IP地址的正則表達式分別用於驗證11位以1開頭的號碼、區號後跟7-8位數字的格式,以及IPv4地址的四位段分隔。日期、郵編和密碼的正則表達式也針對各自的特定格式進行了設計。
正則表達式涵蓋中文字元、數字和更復雜的密碼規則,如"[a-zA-Z]\w{5,17}"和"[a-zA-Z](?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}"。同時,"[\u4e00-\u9fa5]"用於匹配中文字元。
如果你需要深入了解正則表達式的語法,可以參考相關的Python教程,如推薦的兩本入門書籍。對於持續關注和分享Python及數據內容的朱衛軍,他的其他資源也值得一看。
❷ python爬蟲——正則爬取手機號
cmd → pip install re → 回車
cmd → pip install requests → 回車
cmd → pip install beautifulsoup4 → 回車
import requests
import re
from bs4 import BeautifulSoup
r = requests.get("http://www.haomahao.com/")
parttern = "1[35789]\d{9}"
import requests
import re
from bs4 import BeautifulSoup
def down():
r = requests.get("http://www.haomahao.com/") #調用網頁
r.encoding = r.apparent_encoding #更改明旅網頁編碼,防沒塌止出現枯槐圓亂碼
#print(r.text)
bs = BeautifulSoup(r.text,"html.parser")
str1 = bs.getText() #將BeautifulSoup提出出來的寫完text
parttern = "1[35789]\d{9}" #編寫手機號的正則表達式
list = re.findall(parttern,str1)
#print(list) #調試正則是否正確
f = open("手機號.txt",mode="w",encoding="utf-8") #寫入文件
f.write("\n".join(list))
f.close()
if __name__ == "__main__":
down()
❸ python正則表達式是什麼
正則表達式(regex)用於探索給定字元串中的固定模式。我們想找到的模式可以是任何東西。可以創建類似於查找電子郵件或手機號碼的模式。還可以創建查找以a開頭、以z結尾的字元串的模式。
創建模式:
使用正則表達式時,首先需要學習的是如何創建模式。接下來將對一些最常用的模式進行逐一介紹。可以想到最簡單的模式是一個簡單的字元串。
pattern = r'times'
string = "It was the best of times, it was the worst of times."
print(len(re.findall(pattern,string)))
注意:
「正則表達式,又稱規則表達式(英語:Regular Expression,在代碼中常簡寫為regex、regexp或re),是計算機科學的一個概念。正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本」,那使用正則表達式的目的是什麼呢?網路中只寫了兩句話:
1. 給定的字元串是否符合正則表達式的過濾邏輯(稱作「匹配」)。
2. 可以通過正則表達式,從字元串中獲取我們想要的特定部分。
大家可以簡單的理解為兩點:search和match。OK,了解了正則表達式的概念和作用,我們趕緊進入Python的學習吧!正則表達式不是Python獨有的武器,但Python中的正則表達式無疑是最簡單卻又最強大的。
❹ python的正則表達式
1,正則表達式的一些內容
正則表達式主要是用來匹配文本中需要查找的內容,例如在一片文章中找出電話號碼,就中國的來說11位純數字(不說座機),則使用"d{11}" 意味匹配數字11次,就能准確的查找出文本中的電話號碼. 還有就是在編寫網路爬蟲的時候需要提取很多超鏈接再次進行爬取,使用正則表達式就很方便.直接匹配http開頭就行,當然也可以使用beautifulsoup的select方法.
看下面的程序看看正則表達提取文本中的郵箱:
w 匹配字母,數字,下劃線
+ 匹配1次或者多次
re是正則表達式的工具包,工具包出錯的話在anaconda的命令行輸入"pip install re"安裝,其他的工具包也是如此.
re.compile()中的r示意不是轉義字元,也就是保持後面字元串原樣,findall返回一個列表.下面還有一個版本的程序略有不同.
compile的另一個參數re.IGONORECASE(忽略大小寫),還可以是re.DORALL,多行模式,具體功能也是模糊不清,不過在使用通配符 . 匹配的時候加上re.DOTALL參數能夠匹配換行.如果希望忽略大小寫和多行模式都開啟可以使用re.compile(r'....',re.IGNORECASE|re.DOTALL) .
表達式使用( ),對匹配到的內容分為3組 也就是(w+)出現字母,數字,下劃線一次或多次,這個分組就是下面使用match對象的grou()方法的時候的參數.不給參數和參數0都是得到整個匹配到的內容, 參數1得到第一個括弧匹配到的內容,以此類推參數2和3,如果沒有括弧分組的話使用參數會出現錯誤.
search( )查找和正則式匹配的內容,只匹一次後面的那個找不到.返回一個match對象
w 匹配字母,數字,下劃線
W 匹配字母,數字.下劃線之外的所有字元
d 匹配數字
D 匹配非數字
s 匹配空格,製表符,換行符
S匹配除空格製表符,換行符之外的其他字元
[ .... ]定義自己的匹配,如[aeiouAEIOU ]匹配所有的母音字母,注意不是匹配單詞.
{最少次數,最多次數},例如{3,9} 匹配3-9次,{ ,10}匹配0-10次. 默認為匹配最多次數(貪心匹配),非貪心模式在後面加上問號
? 可選 0次或者1次吧
+匹配1次或多次
*匹配0次或者多次
^ 判斷開頭 ^d 如果待匹配串是數字開頭則返回第一個數字
$判斷結尾 d$ 如果待匹配串是數字結尾則返回最後一個數字
. 通配符,匹配除換行之外的所有字元
d{11} 匹配數字11次
. * 匹配所有字元除 換行
[a-zA-Z0-9._%+-] 小寫和大寫字母、數字、句點、下劃線、百分號、加號或短橫
[a-zA-Z]{2,4} 匹配字母 2 - 4次