正则补缺~~~|网络编程

Posted 542684416-qq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则补缺~~~|网络编程相关的知识,希望对你有一定的参考价值。

正则补缺

  • findall

    import re
    ?
    # 没有(),结果集中保存完整匹配的内容
    # f = re.findall(‘abc‘, ‘abcdasabcakdjklasjabc‘)
    # 与上面的情况等价
    # f = re.findall(‘(abc)‘, ‘abcdasabcakdjklasjabc‘)
    # 按照正则进行完整匹配,但是结果集只显示分组内容
    # f = re.findall(‘qq(abc)ww‘, ‘ahdakqqabcwwhsad‘)
    # 按照正则进行完整匹配,但是结果集中的元素时分组信息组成的元组
    # f = re.findall(‘qq(abc)(ww)‘, ‘ahdakqqabcwwhsaqqabcwwd‘)
    # 满足上面所有的规律
    # f = re.findall(‘(qq(abc)(ww))‘, ‘ahdakqqabcwwhsaqqabcwwd‘)
    # 匹配:‘a(hello)c‘ 或 ‘a(world)c‘
    # f = re.findall(‘a(hello|world)c‘, ‘sadahellocshdjaworldcsd‘)
    f = re.findall((a(hello|world)c), sadahellocshdjaworldcsd)
    ?
    print(f)
  • split

    import re
    ?
    c = re.compile(rd)
    ?
    s = 正则其实不难1但是学完之后2发现写不出来3是这样吧
    ?
    # 按照正则规律进行切割,可以指定切割次数
    ret = c.split(s, 1)
    ?
    print(ret)
  • sub

    import re
    ?
    ‘‘‘
    c = re.compile(r‘d‘)
    ?
    # 使用特点内容替换正则匹配到的内容,可以指定替换次数
    ret = c.sub(‘ ‘, ‘how1are2you‘, 2)
    ?
    print(ret)
    ‘‘‘
    ?
    def double(s):
        # print(s)
        return str(int(s.group()) * 2)   
    ?
    # 可以人为的干预正则替换的过程
    # 因此需要传递一个处理的(匿名)函数
    ret = re.sub(rd, double, how1are2you)
    print(ret)
  • 转义问题

    import re
    ?
      # 匹配所有正则语法中涉及的字符都需要转义
    ?
      ‘‘‘
      # python: \\d     \d   r‘\d‘
      # re:    \d        \d     \d
      # 匹配:   d          d      d
      # c = re.compile(‘\\d‘)
      # c = re.compile(‘\d‘)
      # 推荐使用,否则你需要多写好多  c = re.compile(r‘\d‘)
    ?
      s = c.search(‘d‘)
    ?
      if s:
          print(s.group())
      ‘‘‘
    ?
      ‘‘‘
      c = re.compile(r‘\b‘)
    ?
      # 在匹配的字符串中有特殊意义的字符也需要进行转义
      # 若不想转义最好前面添加字符‘r‘
      s = c.search(r‘‘)
    ?
      if s:
          print(s.group())
      ‘‘‘
    ?
      # 了解
      # c = re.compile(r‘hello‘)
      # 单独匹配边界,findall保存的结果全都是空白
      c = re.compile(r)
    ?
      f = c.findall(hello,sdjaks)
    ?
      print(f)

     

      

    1. 使用正则时,python字符串有特殊意义的字符最好转义

    2. 要匹配在正则语法中有特殊函数的字符,都需要进行转义

    3. 字符串前添加‘r‘,可以使其变为原始字符,不要考虑转义问题

相关概念

  • OSI七层模型:开发系统互联参考模型。它从低到高分别是:物理层数据链路层网络层传输层、会话层、表示层应用层

  • TCP/IP:在OSI七层模型的基础上简化抽象出来的一套网络协议簇,现在得到了广泛应用。

  • TCP:传输控制协议

    • 有连接的,数据传输是可靠的。

    • 传输的速度稍慢,三次握手,四次挥手,数据检查

  • UDP:用户数据报协议

    • 无连接的,数据是不可靠的

    • 传输的速度较快

  • IP地址:唯一的一台计算机标识

    • 查看IP:windows下终端下输入ipconfig

  • ping:检查网络连通性

    • 示例:ping IP/域名

  • 端口号:每个引用拥有唯一的端口号

    • 范围:0~65535

      • 公认端口:0~1023

      http:80
      https:443
      smtp:25
      ftp:21
      ssh:22
      • 其他端口:1024~65535

  • 网络编程核心

    • IP + 端口号

    • 库:socket

TCP协议

  • 说明:面向连接的、数据可靠、三次握手、四次挥手、传输速度稍慢

  • 原理:见图片tcp.png

  • 示例:模拟http请求从百度服务器获取数据,见01-tcp-http.py

  • TCP协议的服务器与客户端:见02-tcp-server.py、03-tcp-client.py

UDP协议

  • 说明:面向无连接、数据不可靠、传输速度较快,适应于对数据要求不太严格的情况。

  • 原理:见图片udp.png

  • 示例:采用udp协议模拟飞秋发送短信,见04-udp-feiqiu.py

  • UDP协议的服务器与客户端:见05-udp-server.py、06-udp-client.py

  •  





以上是关于正则补缺~~~|网络编程的主要内容,如果未能解决你的问题,请参考以下文章

通过 Java 正则表达式提取 semver 版本字符串的片段

20165239其米仁增第一周查漏补缺

[From 14] String,一些对String知识得查漏补缺

深度学习知识点查漏补缺(反向传播)

计算机网络 华南理工大学期末重点 额外补缺 谢希仁

text 正则表达式片段