[] [^] 帶有特殊意義的元字符到字符組內大部分都會取消它的特殊意義。python
會取消的:git
# 1.找出<h1>123fh</h1><h2>hado</h2>中全部標籤內的字符串 爬蟲 import re ret = re.findall('<.*?>(.*?)<.*?>','<h1>123fh</h1><h2>hado</h2>') print(ret) # 2.找出四則運算表達式中的第一個乘除法 \d+(\.\d+)?[*/]\d(\.\d+)? \d+(\.\d+)?[*/]-?\d(\.\d+)? import re ret = re.search('\d+(\.\d+)?[*/]-?\d(\.\d+)?','2-3*-5/6') print(ret.group()) # 3.檢測用戶輸入的內容是不是一個合法的身份證號 網頁的合法輸入(手機號碼 qq號碼 銀行卡號 郵箱地址) '^[1-9]\d{14}(\d{2}[\dx])?$' import re inp = input('>>>').strip() re.match('[1-9]\d{14}(\d{2}[\dx])?$',inp) # 首選 re.search('^[1-9]\d{14}(\d{2}[\dx])?$',inp) re.findall('^[1-9]\d{14}(\d{2}[\dx])?$',inp)
網絡基礎是爲將來的web框架的學習、將來的工做場景作鋪墊。web
1.兩個運行中的程序如何傳遞信息?瀏覽器
經過文件(一個程序將信息寫入文件,另外一個程序讀取文件獲取信息。)網絡
2.兩臺機器上的兩個運行中的程序如何通訊?架構
經過網絡框架
3.網絡應用開發架構socket
C/S :client 客戶端 server 服務端學習
如:迅雷 qq 瀏覽器 飛秋 輸入法 百度雲 pycharm git VNC 紅蜘蛛 各類遊戲code
B/S:browser 瀏覽器 server 服務端
如:淘寶 郵箱 各類遊戲 百度 博客園 知乎 豆瓣 抽屜
將來網絡應用的趨勢:統一程序的入口
B/S 和 C/S 架構的關係:
B/S是特殊的C/S架構
4.網絡名詞概念
網卡 :是一個實際存在在計算機中的硬件
mac地址 :每一塊網卡上都有一個全球惟一的mac地址
交換機 :是鏈接多臺機器並幫助通信的物理設備,只認識mac地址
什麼是協議?
server 和 client 獲得的內容都是二進制,因此每一位表明什麼內容,對於計算機來講,必須先約定好再按照約定進行發送和解析。
協議 :兩臺物理設備之間對於要發送的內容,長度,順序的一些約定
ip地址:
ipv4協議 4位的點分十進制 32位2進製表示
0.0.0.0 - 255.255.255.255
ipv6協議 6位的冒分十六進制 128位2進製表示
0:0:0:0:0:0-FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
公網ip
爲何你的外地朋友的電腦咱們訪問不了
每個ip地址要想被全部人訪問到,那麼這個ip地址必須是你申請的
內網ip
內網可使用的網段:
局域網間的通信:經過路由器
交換機實現的arp協議(即交換機進行局域網內的通信)
經過ip地址獲取一臺機器的mac地址
交換機的三種通信模式:廣播、單播、組播
arp協議:地址解析協議
網關ip:一個局域網的網絡出口,訪問局域網以外的區域都須要通過路由器和網關
網段:指的是一個地址段 x.x.x.0 x.x.0.0 x.0.0.0
ip地址
子網掩碼 判斷兩臺機器是否在同一個網段內的
# 255.255.255.0 子網掩碼 # 11111111.11111111.11111111.00000000 # 192.168.12.87 # 11000000.10101000.00001100.01010111 # 11111111.11111111.11111111.00000000 # 11000000.10101000.00001100.00000000 192.168.12.0 # 192.168.12.7 # 11000000.10101000.00001100.00000111 # 11111111.11111111.11111111.00000000 # 11000000.10101000.00001100.00000000 192.168.12.0
ip 地址可以確認一臺機器
port 端口 (確認一個應用)
port 範圍:0-65535
ip + port 確認一臺機器上的一個應用
5.小練習
server服務端 與 client客戶端 之間信息的發送與接收
# server.py 服務端 import socket sk = socket.socket() # 買手機 sk.bind(('127.0.0.1',9000)) # 綁定卡號 sk.listen() # 開機 conn,addr = sk.accept() # 等着接電話 conn.send(b'hello') msg = conn.recv(1024) print(msg) conn.close() # 掛電話 sk.close() # 關機 (關掉服務端) # client.py 客戶端 import socket sk = socket.socket() sk.connect(('127.0.0.1',9000)) msg = sk.recv(1024) print(msg) sk.send(b'byebye') sk.close()
注意:server服務端 與 client客戶端 同時運行,先打開server服務端,再client客戶端 。