用于捕获 ApiAuth 的正则表达式 Headers
Regex to capture ApiAuth Headers
我有以下场景将 Auth Headers 发送到应用程序,范围如下:
"APIAuth 5b6b7ed3b9708d1168455da4:hW1ZeYYLJFGBP8tEHAEGoiGD1xM="
"APIAuth-HMAC-SHA256 5b6b7ed3b9708d1168455da4:hW1ZeYYLJFGBP8tEHAEGoiGD1xM="
etc.
我想要做的是能够从 header 中捕获 APIAuth
和 APIAuth-HMAC-SHA256
,这样我就可以得到 client_id:signature
:
string = '5b6b7ed3b9708d1168455da4:hW1ZeYYLJFGBP8tEHAEGoiGD1xM='
我希望能够从任何 APIAut-WHATEVER-ENCRYPTION
中获取这个值
我一直在玩正则表达式,但我最好的是这个 /\ABearer\s+/i
。我认为这会同时抓住这两个字符,因为 \s+
不仅仅是任何单个字符之一,所以我不知道为什么它不起作用。有人可以帮忙吗?正则表达式不是我的强项。谢谢。
对于示例字符串,您可以匹配您想要的部分:
\bAPIAuth(?:-\S+)?\s+\K[^\s:"]+:[^\s:"]+
说明
\bAPIAuth
一个字边界,后面是APIAuth
(?:-\S+)?
可选择匹配 -
和 1+ 个非空白字符
\s+\K
匹配 1+ 个空白字符并忘记到目前为止使用 \K
匹配的内容
[^\s:"]+:[^\s:"]+
匹配 :
被非空白字符包围的字符或 :
或 "
如果它们也是字符串的一部分
看到一个rubular regex demo.
您也可以只匹配第一部分,然后替换为空字符串。
\bAPIAuth(?:-\S+)?\s+
再看一个regex demo
我有以下场景将 Auth Headers 发送到应用程序,范围如下:
"APIAuth 5b6b7ed3b9708d1168455da4:hW1ZeYYLJFGBP8tEHAEGoiGD1xM="
"APIAuth-HMAC-SHA256 5b6b7ed3b9708d1168455da4:hW1ZeYYLJFGBP8tEHAEGoiGD1xM="
etc.
我想要做的是能够从 header 中捕获 APIAuth
和 APIAuth-HMAC-SHA256
,这样我就可以得到 client_id:signature
:
string = '5b6b7ed3b9708d1168455da4:hW1ZeYYLJFGBP8tEHAEGoiGD1xM='
我希望能够从任何 APIAut-WHATEVER-ENCRYPTION
我一直在玩正则表达式,但我最好的是这个 /\ABearer\s+/i
。我认为这会同时抓住这两个字符,因为 \s+
不仅仅是任何单个字符之一,所以我不知道为什么它不起作用。有人可以帮忙吗?正则表达式不是我的强项。谢谢。
对于示例字符串,您可以匹配您想要的部分:
\bAPIAuth(?:-\S+)?\s+\K[^\s:"]+:[^\s:"]+
说明
\bAPIAuth
一个字边界,后面是APIAuth
(?:-\S+)?
可选择匹配-
和 1+ 个非空白字符\s+\K
匹配 1+ 个空白字符并忘记到目前为止使用\K
匹配的内容
[^\s:"]+:[^\s:"]+
匹配:
被非空白字符包围的字符或:
或"
如果它们也是字符串的一部分
看到一个rubular regex demo.
您也可以只匹配第一部分,然后替换为空字符串。
\bAPIAuth(?:-\S+)?\s+
再看一个regex demo