正则匹配字符串中硬盘

hda  一般是指IDE接口的硬盘,hda一般指第一块硬盘,类似的有hdb,hdc,hd64a
sda  一般是指SATA接口的硬盘,sda一般指第一块硬盘,类似的有sdb,sdc, sd64a, sd-64a, sd64ac
nvme 一般格式nvme64n1a

s = "id=64 /dev/sd-65a id=66 /dev/sd67aa id=68 /dev/hd69a id=70 /dev/nvme71n1a"

如果要拿上面字符串中硬盘列表中含数字取出来,可能用正则匹配比较好。

>>> import re
>>> s='id=64 /dev/sd-65a id=66 /dev/sd67a id=68 /dev/hd69a id=70 /dev/nvme71n1a'
>>> re.findall(r"/dev/(sd|hd|nvme)-?(\d+)(n1)?[a-z]+", s)
[('sd', '65', ''), ('sd', '67', ''), ('hd', '69', ''), ('nvme', '71', 'n1')]
>>> [i[1] for i in re.findall(r"/dev/(sd|hd|nvme)-?(\d+)(n1)?[a-z]+", s)]
['65', '67', '69', '71']

上面的一种情形,/dev/(sd|hd|nvme)-?(\d+)(n1)?[a-z]+基本上就匹配出所有硬盘了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值