代码之家  ›  专栏  ›  技术社区  ›  negrotico19

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

  •  0
  • negrotico19  · 技术社区  · 7 年前

    命名组re 总体安排我还没有完全理解。

     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
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   negrotico19    7 年前

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