代码之家  ›  专栏  ›  技术社区  ›  Imad El Hitti

与不记名代币匹配的regex

  •  1
  • Imad El Hitti  · 技术社区  · 6 年前

    我正在努力制作一个regex,它可以在文件中找到与此类似的行:

    支架89ABDDFB-2CFF-4FDA-83E6-13221F0C3D4F

    它应该在开头有承载器,后面是空格,后面的令牌格式相同: [十六进制,8个字符]-[十六进制,4个字符]-[十六进制,4个字符]-[十六进制,4个字符]-[十六进制,12个字符]

    任何帮助都非常感谢

    PS:也许仅仅是令牌格式的regex就足以在没有承载者的情况下找到令牌,不确定

    4 回复  |  直到 6 年前
        1
  •  2
  •   TobyU    6 年前

    用PowerShell测试regex

    'Bearer\s[\d|a-f]{8}-[\d|a-f]{4}-[\d|a-f]{4}-[\d|a-f]{4}-[\d|a-f]{12}'
    

    编辑:较短版本

    'Bearer\s[\d|a-f]{8}-([\d|a-f]{4}-){3}[\d|a-f]{12}'
    
        2
  •  1
  •   Paolo    6 年前

    可以使用正则表达式:

    ^Bearer\s[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$

    ^Bearer\s[a-f0-9-]{36}$

    你可以在现场试一下正则表达式 here here .

        3
  •  1
  •   Andrej Kesely    6 年前
    import re
    
    data = "Bearer 89abddfb-2cff-4fda-83e6-13221f0c3d4f"
    
    print(re.findall(r'(Bearer )([a-f\d]{8})-([a-f\d]{4})-([a-f\d]{4})-([a-f\d]{4})-([a-f\d]{12})', data))
    

    这个 explanation on Regex101 here .

        4
  •  1
  •   Zenoo    6 年前

    你可以用regex Bearer [\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}

    • Bearer 比赛 持票人 凋落地

    • [\da-f] 匹配十六进制值

    • {n} 与前一组匹配 n 时代

    Demo.