以下是输入:
供应商:希捷产品:ST914602SSUN146G版本:0603序列号:080394ENWQ 大小:146.81GB<;146810536448字节>
我的代码:
iostat_cmd = client.executeCmd('iostat -En '+disk+'|egrep \'Vendor|Size\'')
vendor = re.search(r'Vendor:(.*)Product:',iostat_cmd)
vendor = str(vendor.groups()).strip()
product = re.search(r'Product:(.*)Revision:',iostat_cmd)
product = str(product.groups()).strip()
revision = re.search(r'Revision:(.*)Serial No:',iostat_cmd)
revision = str(revision.groups()).strip()
serial = re.search(r'Serial No:(.*)',iostat_cmd)
serial = str(serial.groups()).strip()
size = re.search(r'Size:(.*)<.*>',iostat_cmd)
size = str(size.groups()).strip()
问题是,它实际上并没有将groups()的结果转换成字符串,这可能就是strip()什么都不做的原因。基本上我想删除前导和尾随空格。请不要建议使用replace,因为任何匹配组都可以由多个单词组成(例如,产品名称可以是Virtual disk),并且还考虑到iostat命令输出中使用空格/分隔符是完全任意的,这就是为什么我首先要解决所有问题的原因。你知道吗
下面是发生的情况:
jvm 2 | <type 'org.python.modules.sre.MatchObject'>
jvm 2 | <type 'str'>
jvm 2 | (u' SEAGATE ',)
jvm 2 | (u' ST914602SSUN146G ',)
jvm 2 | (u' 0603 ',)
jvm 2 | (u' 080394EC41 \r',)
jvm 2 | (u' 146.81GB ',)
jvm 2 | (u' SEAGATE ',)(u' ST914602SSUN146G ',)(u' 0603 ',)(u' 080394EC41 \r',)(u' 146.81GB ',)
在match对象上使用
.groups()
时,您将得到一个元组,其中包含从regex中捕获的任何组的内容。你知道吗要仅获取第一个捕获的内容,请改用^{} 。你知道吗
相关问题 更多 >
编程相关推荐