正则表达式re模块
在 python中,可以通过使用** re 模块**的正则表达式来匹配字符串语法
import re# 使用match方法进行匹配操作result=re.match(正则表达式,要匹配的字符串)# 如果上面匹配到数据的话,要以使用group方法来提取数据result.group()单个字符匹配规则
字符功能
. 匹配任意1个字符(除了\\n)
[ ] 匹配 [ ] 中列举的字符
\\d 匹配数字,即 0~9
\\d 匹配非数字
\\s 匹配空白字符,即 空格、tab键
\\s 匹配非空白
\\w 匹配单词字符,即 az 、az、0~9、_、中文
\\w 匹配非单词字符
**多个字符匹配规则 **
字符功能
* 匹配前一个字符出现0次或无限次,即可有可无
+ 匹配前一个字符出现1次或者无限次,即 至少1次
? 匹配前一个字符出现0次或1次,即 要么1次,要么没有
{m} 匹配前一个字符出现m次
{m,n} 匹配前一个字符出现从m到n次
匹配分组
字符功能
(ab) 将括号中的字符作为一个分组
\\num 引用分组 num匹配到字符串
(?p) 分组起别名
(?p=name) 引用别名为name分组匹配到的字符串
示例
import re# 匹配单个字符str_content=生化危机2t1=re.match(r生化危机\\d,str_content)print(t1.group())# 匹配多个字符str_content=孙悟空的手机是:13388888888t1=re.match(r孙悟空的手机是:\\d{1,11},str_content)print(t1.group())# 分组, 匹配邮箱,126、qq、163邮箱都可以, 邮箱中的 .需要使用 \ 转义str_content=孙悟空的邮箱是:sunwukong@163.comt1=re.match(r孙悟空的邮箱是:\\w+@(126|163|qq)\\.com,str_content)print(t1.group())re模块的高级用法
search、findall、sub、split示例
# search 用法str_content=孙悟空会72变t1=re.search(r\\d+,str_content)print(t1.group())# 输出结果:72# findall 用法str_content=孙悟空会72变,猪八戒会36变,二郎神会36变t1=re.findall(r\\d+,str_content)print(t1)# 输出结果:['72', '36', '36']# sub 将匹配到的字符串进行替换str_content=孙悟空会 36 变t1=re.sub(r\\d+,72,str_content)print(t1)# 输出结果:孙悟空会 72 变# split 根据匹配切割字符串,返回一个字符列表str_content=孙悟空,猪八戒,沙和尚t1=re.split(r,,str_content)print(t1)# 输出结果:['孙悟空', '猪八戒', '沙和尚']注:python 中字符串前面加上 r 表示原生字符串
与大多数编程语言相同,正则表达式里使用 作为转义字符,这就可能会有反斜杠困扰。 如果你需要匹配的文本中有两个 ,那么使用正则表达式里面就需要使用四个 (即 \\)str_content=c:\\\\a# 不使用 rt1=re.match(c:\\\\\\\\a,str_content)print(t1.group())# 使用 rt1=re.match(rc:\\\\a,str_content)print(t1.group())**输出结果
**
web服务器http协议
在web应用中,服务器把网页传递给浏览器,实际上就是把网页的html代码发送给浏览器,让浏览器显示出来,而浏览器和服务器之间的传输协议是httphtml 是一种用来定义网页的文本,编写网页的代码就是html语言**http **是在网络上传输html的协议,用于浏览器和服务器之间的通信访问百度的示例
简单web服务器
import socketdef main(): # 创建tcp套接字 so_server=socket.socket(socket.af_inet,socket.sock_stream) # 绑定端口 so_server.bind((,33333)) # 监听套接字 so_server.listen(128) # 等待新客户端接连 new_socket,client_addr=so_server.accept() #接收浏览器发过来的请求 request=new_socket.recv(1024) print(request) # 发送给浏览器数据 content=http/ 1.2 xxx\\r\\n content+='\\r\\n' content+=hello world!! new_socket.send(content.encode(utf-8)) # 关闭 new_socket.close() so_server.close()if __name__ == '__main__': main()请求示例
CS5532-PIC程序代码解析
“新基建”风口之下,AIoT将成为5G智能手机市场竞争的破局关键
5G将于2020年进入商业运转 手机瓶颈仍待突破
Raychem瑞侃压接D-Sub连接器的特征与优势
通过简单的「图像旋转」预测便可为图像特征学习提供强大监督信号
Python-正则与简单web服务器
基于HFSS与ADS结合的微波滤波器设计
超高颜值 满血性能!4月畅销锐龙本排行榜
江苏移动精研科技项目,5G+AI助力智造新工厂
三星M10/M20售价曝光:约人民币850元起
巧用CD4017制作多地单键控制开关
国内集成电路业或将迎来第三次造富热潮
七彩虹即将开卖三款RTX 3060 Ti显卡
新手想学习机器学习,需要看什么样的书籍呢?
DDR/LPDDR和GDDR科技都将持续增长将成为这场存储逐力赛中的黑马
单相串激电动机怎么用
三相电机工作时不热但线路烧坏的原因分析
采用OPA128的精密光电检测电路
京东自营Nvidia显卡不再支持7天无理由退货:原因竟是这个?
计算机系统中哈希表的优化