正则补缺~~~|网络编程
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(r‘d‘) ? 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(r‘d‘, 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)
-
使用正则时,python字符串有特殊意义的字符最好转义
-
要匹配在正则语法中有特殊函数的字符,都需要进行转义
-
字符串前添加‘r‘,可以使其变为原始字符,不要考虑转义问题
-
相关概念
-
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 版本字符串的片段