如何将此正则表达式转换为"命名组re"Python



我需要将以下正则表达式转换为命名组重新格式化。我还不完全明白。

 info = re.findall(
                r'.*/dev/(sd.):[.s]*0[xX][1-9a-fA-F]+[.s]*0[xX][0-9a-fA-F]+[.s]*(S+).*', content
            )

测试它是否有效的字符串可以是(与sda13D0A016FTR7匹配(:

/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'"

最新更新