2021-03-20

python正则表达式
1、面向的问题
01、判断一个字符串是否匹配给定的格式(判断用户注册账号是否满足格式)
02、从字符串中按指定格式提取信息(抓取页面中的链接)

import re
s = '12345678@aaa.com'

z = r'^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.com$'

m = re.findall(z, s)
print(m)




['12345678@aaa.com']
import re

a = '123456789'
z = r'^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.com$'

m = re.findall(z, a)
print(m)




[]

2、re模块
01、findall 方法:在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表
02、match 方法:re.match 尝试从字符串的起始位置匹配一个模式,匹配成功返回的是一个匹配对象(这个对象包含了我们匹配的信息),如果不是起始位置匹配成功的话,match()返回的是空 match只能匹配到一个

import re
s = 'Python123456python'
m = re.match(r'Py', s)   #从字符起始位置开始查找
print(m)




<re.Match object; span=(0, 2), match='Py'>
import re
s = 'Python123456python'
m = re.match(r'Py', s)   #从字符起始位置开始查找
m = m.group()
print(m)



Py
import re
s = 'Python123456python'
m = re.match(r'Py', s)   #从字符起始位置开始查找
m = m.span()
print(m)



(0, 2)

03、search方法
re.search 扫描整个字符串,匹配成功返回的是一个匹配对象(这个对象包含了我们匹配的信息)
注意:search也只能匹配到一个,找到符合规则的就返回,不会一直往后找
re.match与re.search的区别:re.match只匹配字符串的开始位置找,如果字符串开始不符合正则表达式,则匹配失败,re.search:匹配整个字符串,如果一直找不到则,返回时空的,没有结果

import re
s = 'Python123456python'
m = re.search(r'Python', s)
print(m.group())




Python

3、元字符
元字符就是符号,代表一些特殊含义 \可以取消转义
01、 . 点代表任意一个字符

import re
s = 'Python123456python'
m = re.findall(r'.', s)
print(m)





['P', 'y', 't', 'h', 'o', 'n', '1', '2', '3', '4', '5', '6', 'p', 'y', 't', 'h', 'o', 'n']

02、[] 匹配[]中列举的字符 范围

import re
s = 'Python123456python'
m = re.findall(r'[0-9]', s)
print(m)





['1', '2', '3', '4', '5', '6']

03、 \d 匹配数字 即0-9 预定义字符组

import re
s = 'Python123456python'
m = re.findall(r'\d', s)
print(m)





['1', '2', '3', '4', '5', '6']

04、\D 匹配非数字

import re
s = 'Python123456python'
m = re.findall(r'\D', s)
print(m)





['P', 'y', 't', 'h', 'o', 'n', 'p', 'y', 't', 'h', 'o', 'n']

05、\s 匹配空白,即空格,tab键

import re
s = 'Python   123456python'
m = re.findall(r'\s', s)
print(m)




[' ', ' ', ' ']

06、 \S 匹配非空白

import re
s = 'Python   123456python'
m = re.findall(r'\S', s)
print(m)






['P', 'y', 't', 'h', 'o', 'n', '1', '2', '3', '4', '5', '6', 'p', 'y', 't', 'h', 'o', 'n']

07、 \w 匹配单词字符,即a-z A-Z 0-9 _

import re
s = 'Python123456python'
m = re.findall(r'\w', s)
print(m)




['P', 'y', 't', 'h', 'o', 'n', '1', '2', '3', '4', '5', '6', 'p', 'y', 't', 'h', 'o', 'n']

08、 \W 匹配非单词字符

import re
s = 'Python123456python'
m = re.findall(r'\W', s)
print(m)




[]

09、* 匹配前一个字符出现0次或者无限次,即可有可无

import re
s = 'Python123456python'
m = re.findall(r'.*', s)
print(m)





['Python123456python', '']

010、 + 匹配前一个字符出现1次或者无限次,即至少有1次

import re
s = 'Python123456python'
m = re.findall(r'y+', s)
print(m)




['y', 'y']

011、 ? 匹配前一个字符出现1次或者0次,即要么有1次,要么没有

import re
s = 'Python123456python'
m = re.findall(r'y?', s)
print(m)





['', 'y', '', '', '', '', '', '', '', '', '', '', '', 'y', '', '', '', '', '']

012、 {m} 匹配前一个字符出现m次 控制匹配次数

import re
s = 'Python123456python'
m = re.findall(r'.{3}', s)
print(m)





['Pyt', 'hon', '123', '456', 'pyt', 'hon']

013、{m,} 匹配前一个字符至少出现m次
014、 {m,n} 匹配前一个字符出现从m次n次

import re
s = 'aaa1bbb2ccc1234ddddeee'
m = re.findall(r'[0-9]{2,9}', s)
print(m)




['1234']

015、^ 匹配字符串开头

import re
s = 'abccccccd'
m = re.findall(r'^a', s)
print(m)



['a']

016、 $ 匹配字符串结尾

import re
s = 'abccccccd'
m = re.findall(r'd$', s)
print(m)




['d']

017、 \b 匹配一个单词的边界

import re
s = 'abccccccd'
m = re.findall(r'\babc', s)
print(m)




['abc']

018、 \B 匹配非单词边界

import re
s = 'kabccccccd'
m = re.findall(r'\Babc', s)
print(m)





['abc']

019、 | 分组匹配, 选择元字符

import re
s = 'hello   haha'
m = re.findall(r'hello|haha', s)
print(m)




['hello', 'haha']

020、() 将括号中字符作为一个分组

贪婪模式 尽可能多的去匹配内容

import re
s = 'hellohello aaaccc123bbb'
m = re.findall(r'hello.*', s)
print(m)




['hellohello aaaccc123bbb']

非贪婪模式 尽可能少的去匹配内容

import re
s = 'hellohello aaaccc123bbb'
m = re.findall(r'hello.*?', s)
print(m)




['hello', 'hello']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2021-03-26 20:54:33,596 - Model - INFO - Epoch 1 (1/200): 2021-03-26 20:57:40,380 - Model - INFO - Train Instance Accuracy: 0.571037 2021-03-26 20:58:16,623 - Model - INFO - Test Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Best Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Save model... 2021-03-26 20:58:16,623 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 20:58:16,698 - Model - INFO - Epoch 2 (2/200): 2021-03-26 21:01:26,685 - Model - INFO - Train Instance Accuracy: 0.727947 2021-03-26 21:02:03,642 - Model - INFO - Test Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Best Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Save model... 2021-03-26 21:02:03,643 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 21:02:03,746 - Model - INFO - Epoch 3 (3/200): 2021-03-26 21:05:15,349 - Model - INFO - Train Instance Accuracy: 0.781606 2021-03-26 21:05:51,538 - Model - INFO - Test Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,538 - Model - INFO - Best Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,539 - Model - INFO - Save model... 2021-03-26 21:05:51,539 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 我有类似于这样的一段txt文件,请你帮我写一段代码来可视化这些训练结果
最新发布
02-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值