0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python-正则与简单web服务器

汽车电子技术 来源: 程序猿知秋 作者:程序猿知秋 2023-02-16 15:48 次阅读

正则表达式

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="生化危机2"
t1=re.match(r"生化危机\\d",str_content)
print(t1.group())


# 匹配多个字符
str_content="孙悟空的手机是:13388888888"
t1=re.match(r"孙悟空的手机是:\\d{1,11}",str_content)
print(t1.group())


# 分组, 匹配邮箱,126、qq、163邮箱都可以, 邮箱中的 .需要使用 \ 转义
str_content="孙悟空的邮箱是:sunwukong@163.com"
t1=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"
# 不使用 r
t1=re.match("c:\\\\\\\\a",str_content)
print(t1.group())


# 使用 r
t1=re.match(r"c:\\\\a",str_content)
print(t1.group())

**输出结果

**

图片

web服务器

http协议

  • 在Web应用中,服务器把网页传递给浏览器,实际上就是把网页的html代码发送给浏览器,让浏览器显示出来,而浏览器和服务器之间的传输协议是HTTP
    • HTML 是一种用来定义网页的文本,编写网页的代码就是html语言
    • **HTTP **是在网络上传输html的协议,用于浏览器和服务器之间的通信

访问百度的示例

图片

简单web服务器

import socket




def 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()

请求示例

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2484

    浏览量

    46530
  • 字符串
    +关注

    关注

    1

    文章

    551

    浏览量

    20123
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83466
收藏 人收藏

    评论

    相关推荐

    Labview与Web(二)---------------Web 服务器(原创)

    ,还请告知,谢谢。版本:labview 2014/2013 在此我们只是先简单绍一下web服务器,感兴趣的朋友可以深入研究一下。文件->新建…->项目。我的电脑->新建->web
    发表于 04-20 18:14

    Labview与Web(二)---------------Web 服务器(原创)

    简单绍一下web服务器,感兴趣的朋友可以深入研究一下。文件->新建…->项目。我的电脑->新建->web服务保存,并在保存目录创建publi
    发表于 04-20 18:15

    【Intel Edison试用体验】+WEB服务器

    一般来说,嵌入式里面,只要是有网络的设备,内存够,都可以实现web服务器。在这里利用Intel edison的wifi实现web 服务器,这里实现一个
    发表于 07-14 08:11

    labview Web服务器如何启动?

    labview利用web服务器发布网页时,想在浏览中预览时无法启动web服务器
    发表于 04-12 07:59

    第53章 RL-TCPnet之Web服务器的JavaScript实现简单说明

    转帖 本章节主要为大家讲解Web服务器中使用JavaScript的方法。关于JavaScript涉及到的知识点太多,我们就不专门做成教程了,仅简单进行说明并配套一个例子,方便大家作为参考。本章教程含
    发表于 01-19 10:23

    五大Python Web框架详解

    用于Python的、简单而非常有用的Web框架,其主要作用是以尽可能少的操作将Web服务器Python
    发表于 02-06 17:17

    使用Python创建简单的FTP服务器

    通过 Python 的 -m 选项将 Pyftpdlib 模块作为一个简单的独立服务器来运行,假设我们需要共享目录 /Users/Edu/Oldboy,只需要以下这个命令行就可以轻松实现:$ cd
    发表于 05-04 16:17

    Python爬虫与Web开发库盘点

    可以更加直接的需求灵活搭配。Tornado全称叫Tornado Web Server,目前是Facebook开源的一个版本,它和其他主流的框架有一个非常明显的区别:就是非阻塞式服务器,速度非常快。特别对于长轮询,WebSocket等实时要求高的
    发表于 05-10 15:21

    web网站服务器并解析python文件

    ubuntu安装apache web网站服务器并解析python文件
    发表于 05-13 11:51

    常见的嵌入式web服务器有哪些

    常见的嵌入式web服务器有:Lighttpd, Shttpd, Thttpd, Boa, Mini_httpd, Appweb, Goahead, luaopenwrt用的就是lua。当然还有python实现的轻量级
    发表于 10-27 08:24

    如何实现对嵌入式WEB服务器系统的控制设计

    ......摘要工程实践教学环节是为了学生能够更好地巩固和实践所学专业知识而设置的,在本次工程实践中,我们以ARM体系结构与编程课程中所学知识为基础,对基于ARM的简单嵌入式WEB服务器系统进行了
    发表于 11-09 08:47

    嵌入式Web服务器的设计与实现

    摘要:嵌入式Web服务器是嵌入式系统应用的一个重要组成部分.以其简单,廉价,功能完善和通用性强等特点,在远程监控,智能家电和资源共享等多种场合得到广泛应用.本文以嵌入式Web
    发表于 11-09 08:41

    如何在microPython上搭建一个简单的HTTP WEB服务器

    在microPython上搭建一个简单的HTTP WEB服务器microPython给会使用Python的人从事单片机开发提供了一个可能, 但是目前好像没有一个成熟的
    发表于 12-08 07:59

    pythonweb部署方式大全!

    Python Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为
    的头像 发表于 05-05 17:20 2927次阅读
    <b class='flag-5'>python</b>的<b class='flag-5'>web</b>部署方式大全!

    嵌入式web服务器系统设计,基于-ARM简单嵌入式WEB服务器系统设计.doc

    ......摘 要工程实践教学环节是为了学生能够更好地巩固和实践所学专业知识而设置的,在本次工程实践中,我们以ARM体系结构与编程课程中所学知识为基础,对基于ARM的简单嵌入式WEB服务器系统
    发表于 11-03 20:06 21次下载
    嵌入式<b class='flag-5'>web</b><b class='flag-5'>服务器</b>系统设计,基于-ARM<b class='flag-5'>简单</b>嵌入式<b class='flag-5'>WEB</b><b class='flag-5'>服务器</b>系统设计.doc