我需要将以下正则表达式转换为命名组重新格式化。我还不完全明白。
info = re.findall(
r'.*/dev/(sd.):[.s]*0[xX][1-9a-fA-F]+[.s]*0[xX][0-9a-fA-F]+[.s]*(S+).*', content
)
测试它是否有效的字符串可以是(与sda
、13D0A016FTR7
匹配(:
/dev/sda: 0x1 0x0 '13D0A016FTR7'
最后,它应该能够通过以下方式使用 info
变量:
info[0][0] = sda
info[0][1] = 13D0A016FTR7
回答我的问题:
content = "/dev/sda: 0x1 0x0 '13D0A016FTR7'"
info = re.search(r'.*/dev/(?P<disk>sd.):[.s]*0[xX][1-9a-fA-F]+[.s]*0[xX][0-9a-fA-F]+[.s]*(?P<serial>S+).*', content)
info.group('disk')
'sda'
info.group('serial')
"'13D0A016FTR7'"