1.findall 找到全部符合规则的项,并返回列表 2.search 找到第一个符合规则的项,并返回一个对象 3.match 从头开始,找到第一个符合规则的项,并返回一个对象 4.finditer 找到全部符合规则的项,并返回一个迭代器 5.compile 预编译一个正则规则,节省屡次使用同一个正则的编译 6.sub 替换 默认替换全部,可使用替换深度参数 7.bsub 替换返回元组 8.split 根据正则规则切割,返回列表,默认不保留切掉的内容
1.分组命名,(?P<组名>正则) 2.引用分组,(?P=组名) 3.findall和分组,优先显示分组中的内容,(?:)取消这个分组的优先 4.split和分组 split会保留正则中分组内匹配到的内容 5.search和分组 search取分组中的内容,经过索引取obj.group(1),经过组名取obj.group(‘组名’)
元字符、量词、惰性符号python
[],[^]:带有特殊意义的元字符到字符组内大部分取消其特殊含义。git
若是担忧出现特殊含义:加
会取消的:[()+.] - [(-)] -的位置决定了它的意义,写在字符组的第一个位置就表示一个普通的横杠。- 写在字符组的其余任何位置都是表示一个范围。正则表达式
正则表达式深刻学习---《正则指引》浏览器
找出<h1>123fh</h1><h2>hado</h2>中全部标签内的字符串 爬虫 import re ret=re.findall('<.*?>(.*?)<.*?>','<h1>123fh</h1><h2>hado</h2>') print(ret) 找出四则运算表达式中的第一个乘除法 \d(\.\d+)?[*/]-?\d(\.\d+)? 检测用户输入的是否为标准身份证号码: [1-9]\d{14}(\d{2}[\dx])? #若是使用findall,^[1-9]\d{14}(\d{2}[\dx])?$ #建议使用match和search match:[1-9]\d{14}(\d{2}[\dx])?$ search:^[1-9]\d{14}(\d{2}[\dx])?$
1.两个运行中的程序如何传递信息? 经过文件 2.两台机器上的两个运行中的程序如何通讯? 经过网络 网络应用开发架构 C/S 迅雷 qq 浏览器 飞秋 输入法 百度云 pycharm git VNC 红蜘蛛 各类游戏 client 客户端 server 服务端 B/S 淘宝 邮箱 各类游戏 百度 博客园 知乎 豆瓣 抽屉 browser 浏览器 server 服务端 统一程序的入口 B/S和C/S架构的关系 B/S是特殊的C/S架构 网卡 :是一个实际存在在计算机中的硬件 mac地址 :每一块网卡上都有一个全球惟一的mac地址 交换机 :是链接多台机器并帮助通信的物理设备,只认识mac地址 协议 :两台物理设备之间对于要发送的内容,长度,顺序的一些约定 ip地址 ipv4协议 位的点分十进制 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 192.168.0.0 - 192.168.255.255 172.16.0.0 - 172.31.255.255 10.0.0.0 - 10.255.255.255 交换机实现的arp协议 经过ip地址获取一台机器的mac地址 网关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 端口 0-65535 80 ip + port 确认一台机器上的一个应用
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() #关机,关闭socket #客户端 import socket sk=socket.socket() sk.connect(('127.0.0.1',9000)) #链接服务器 msg=sk.recv(1024) #接收信息 print(msg) sk.send(b'byebye') #发送信息 sk.close() #关闭socket
1.findall 找到全部符合规则的项,并返回列表 2.search 找到第一个符合规则的项,并返回一个对象 3.match 从头开始,找到第一个符合规则的项,并返回一个对象 4.finditer 找到全部符合规则的项,并返回一个迭代器 5.compile 预编译一个正则规则,节省屡次使用同一个正则的编译 6.sub 替换 默认替换全部,可使用替换深度参数 7.bsub 替换返回元组 8.split 根据正则规则切割,返回列表,默认不保留切掉的内容
1.分组命名,(?P<组名>正则) 2.引用分组,(?P=组名) 3.findall和分组,优先显示分组中的内容,(?:)取消这个分组的优先 4.split和分组 split会保留正则中分组内匹配到的内容 5.search和分组 search取分组中的内容,经过索引取obj.group(1),经过组名取obj.group(‘组名’)
元字符、量词、惰性符号服务器
[],[^]:带有特殊意义的元字符到字符组内大部分取消其特殊含义。网络
若是担忧出现特殊含义:加
会取消的:[()+.] - [(-)] -的位置决定了它的意义,写在字符组的第一个位置就表示一个普通的横杠。- 写在字符组的其余任何位置都是表示一个范围。架构
正则表达式深刻学习---《正则指引》socket
找出<h1>123fh</h1><h2>hado</h2>中全部标签内的字符串 爬虫 import re ret=re.findall('<.*?>(.*?)<.*?>','<h1>123fh</h1><h2>hado</h2>') print(ret) 找出四则运算表达式中的第一个乘除法 \d(\.\d+)?[*/]-?\d(\.\d+)? 检测用户输入的是否为标准身份证号码: [1-9]\d{14}(\d{2}[\dx])? #若是使用findall,^[1-9]\d{14}(\d{2}[\dx])?$ #建议使用match和search match:[1-9]\d{14}(\d{2}[\dx])?$ search:^[1-9]\d{14}(\d{2}[\dx])?$
1.两个运行中的程序如何传递信息? 经过文件 2.两台机器上的两个运行中的程序如何通讯? 经过网络 网络应用开发架构 C/S 迅雷 qq 浏览器 飞秋 输入法 百度云 pycharm git VNC 红蜘蛛 各类游戏 client 客户端 server 服务端 B/S 淘宝 邮箱 各类游戏 百度 博客园 知乎 豆瓣 抽屉 browser 浏览器 server 服务端 统一程序的入口 B/S和C/S架构的关系 B/S是特殊的C/S架构 网卡 :是一个实际存在在计算机中的硬件 mac地址 :每一块网卡上都有一个全球惟一的mac地址 交换机 :是链接多台机器并帮助通信的物理设备,只认识mac地址 协议 :两台物理设备之间对于要发送的内容,长度,顺序的一些约定 ip地址 ipv4协议 位的点分十进制 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 192.168.0.0 - 192.168.255.255 172.16.0.0 - 172.31.255.255 10.0.0.0 - 10.255.255.255 交换机实现的arp协议 经过ip地址获取一台机器的mac地址 网关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 端口 0-65535 80 ip + port 确认一台机器上的一个应用
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() #关机,关闭socket #客户端 import socket sk=socket.socket() sk.connect(('127.0.0.1',9000)) #链接服务器 msg=sk.recv(1024) #接收信息 print(msg) sk.send(b'byebye') #发送信息 sk.close() #关闭socket