re模块,oop概念

**

re模块 ( 提供正则函数 )

**
正则表达式: 描述数据共性特征的式子,由固定符号组成,每种符号表示了固定意义
正则符号 ^ 在[]中代表取反,单独表示开头 $ [ ] . * ? { }
作用: 在数据里过滤与表达式匹配的数据
’ - ’ 单独做符号,不能放中间

{m,n } 匹配前面出现的字符至少m次最多n次
[root@dc code]# grep ‘g(ac){2}d’ re.txt
gacd (gacacd) gacacacd gacacacd gacacacd gacacacacd #匹配两次
[root@dc code]# grep ‘g(ac){2,}d’ re.txt
gacd (gacacd gacacacd gacacacd gacacacd gacacacacd) #匹配两次或多次
[root@dc code]# grep ‘g(ac){2,3}d’ re.txt
gacd (gacacd gacacacd gacacacd gacacacd) gacacacacd #匹配两次或多次
[root@dc code]# grep ‘g(ac){,3}d’ re.txt
(gacd gacacd gacacacd gacacacd gacacacd )gacacacacd #至少一次,匹配一次或多次

‘\b’ 单词边界
()1.把正则表达式作为整体匹配
2.保存与正则表达式匹配的数据(后向引用)
按照括号顺序获取保存的数据
\1 \2 \3 表示某个括号中的数据
vim re2.txt
末行模式 :%s/(^.)(.*)/(\1)[\2]/ 如下效果:
(a)[fvbkjllm]
(1)[23245436]
(A)[CFSGHJK]
(E)[ROREETN]

获取数据里与正则表达式匹配的数据
函数包括:
match () 从字符串开头匹配
import re
re.match(‘foo’,‘foodglok’)
<_sre.SRE_Match object; span=(0, 3), match=‘foo’>
x=re.match(‘foo’,‘foodglok’)
x.group()
‘foo’
search () 匹配就可以,多个时默认匹配第一次出现的字符
re.search(‘foo’,‘foodglok’)
<_sre.SRE_Match object; span=(0, 3), match=‘foo’>
m=re.search(‘foo’,‘foodglok’)
m.group()
‘foo
finditer()返回迭代器,对象(内存地址),遍历输出值
m=re.finditer(‘foo’,‘foodglok foodfgrw fooasewrt’)
m
<callable_iterator object at 0x7fdb354b1ef0>
for i in m:
… print(i.group())

foo
foo
foo
compile()编译正则表达式
p = re.compile(‘foo’)
m=p.search(‘foodglok foodfgrw fooasewrt’)
m.group()
‘foo’
m=p.findall(‘foodglok foodfgrw fooasewrt’)
m
[‘foo’, ‘foo’, ‘foo’]
findall (常用)匹配所有出现的字符,返回列表
m=re.findall(‘foo’,‘foodglok foodfgrw fooasewrt’)
m
[‘foo’, ‘foo’, ‘foo’]
方法
group ()
sub ()替换

m = re.sub(‘girl’,‘abc’,‘she is a girl girl’)
m
‘she is a abc abc’
m = re.sub(’^.’,‘S’,‘she is a girl girl’)
m
‘She is a girl girl’
split ()分割函数
mylist = re.split(’.|-’,‘hello-world.data’)
mylist
[‘hello’, ‘world’, ‘data’]
l = re.split(’-’,‘hello-world.data’)
l
[‘hello’, ‘world.data’]
匹配Mac地址正则表达式
思路:总结数据特点,用正则表达式描述数据特点
Mac地址用十六进制数表示 (0 - 9 a b c d e f (A B C D E F))
格式 :每两个十六进制为一组,由六组组成,每组之间用 :分割

([0-9a-fA-F][0-9a-fA-F]:){5}[0-9a-fA-F]{2}
[root@dc code]#vim mac.py
import re

mac=input(“请输入正确的Mac地址”)
print(“mac地址:”,mac)

m=re.match(’([0-9a-fA-F][0-9a-fA-F]:){5}[0-9a-fA-F]{2}’,mac)
if m is None:
print(mac,“地址不正确”)
else:
print(“mac地址:”,m.group())
python3 mac.py
请输入正确的Mac地址00:12:23:1a:35:ty
mac地址: 00:12:23:1a:35:ty
00:12:23:1a:35:ty 地址不正确
[root@dc code]# python3 mac.py
请输入正确的Mac地址11:13:14🆎15:00
mac地址: 11:13:14🆎15:00
mac地址: 11:13:14🆎15:00

匹配IP地址正则表达式
import re
fobj = open("/root/a.txt",‘rt’)
data = fobj.readlines()
for i in data:
m = re.match(’(\d+.{3}\d+)’,i)
print(m.group())

fobj.close()
oop 软件开发时的编程思想

OOA 分析
OOD 设计
OOP 面向对象编程
面向过程,抛出问题逐步解决
面向对象,抛出问题找指定的人

类:( 名词)—对象统称,具有相同属性和行为统称
包括 数据 和 行为
方法=行为
属性=数据
对象: 归属某个类别的个体,类的具体实例
实例化 :把类具体化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值