正则表达式匹配Bearer令牌

时间:2018-07-24 13:23:05

标签: regex

尝试创建一个可以在文件中找到与此类似的行的正则表达式时,我遇到了麻烦:

  

轴承89abddfb-2cff-4fda-83e6-13221f0c3d4f

它的开头应为Bearer,后跟空格,其后的令牌应采用相同的格式: [十六进制,八字符]-[十六进制,四字符]-[十六进制,四字符]-[十六进制,四字符]-[十六进制,十二字符]

任何帮助将不胜感激

PS:也许只是令牌格式的正则表达式就足以在没有承载者不确定的情况下找到令牌

5 个答案:

答案 0 :(得分:2)

RegEx已通过PowerShell测试

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

答案 1 :(得分:1)

您可以使用正则表达式:

^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}$

您可以尝试实时使用herehere的正则表达式。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

您可以使用RegEx Bearer [\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}

  • Bearer偶尔与Bearer匹配

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

  • {n}与前面的组匹配n

Demo.

答案 4 :(得分:1)

您还可以使用此正则表达式 ^(?i)Bearer(。*)(?-i),因为它也适用于大小写。