[] [^] 带有特殊意义的元字符到字符组内大部分都会取消它的特殊意义。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客户端 。