我有以下場景將 Auth 標頭發送到應用程式,其范圍如下:
"APIAuth 5b6b7ed3b9708d1168455da4:hW1ZeYYLJFGBP8tEHAEGoiGD1xM="
"APIAuth-HMAC-SHA256 5b6b7ed3b9708d1168455da4:hW1ZeYYLJFGBP8tEHAEGoiGD1xM="
etc.
我想做的是能夠捕獲APIAuth并APIAuth-HMAC-SHA256從標題中留下client_id:signature這樣的資訊:
string = '5b6b7ed3b9708d1168455da4:hW1ZeYYLJFGBP8tEHAEGoiGD1xM='
我希望能夠從任何APIAut-WHATEVER-ENCRYPTION
我一直在玩正則運算式,但我最好的就是這個/\ABearer\s /i。我認為這可以同時抓住兩者,因為\s 它不僅僅是任何單個角色中的一個,所以我不知道為什么它不起作用。有人可以幫忙嗎?正則運算式不是我的強項。謝謝你。
uj5u.com熱心網友回復:
對于示例字串,您可以匹配所需的部分:
\bAPIAuth(?:-\S )?\s \K[^\s:"] :[^\s:"]
解釋
\bAPIAuth一個單詞邊界,后跟APIAuth(?:-\S )?可選匹配-和 1 個非空白字符\s \K匹配 1 個空格字符并忘記到目前為止匹配的內容\K[^\s:"] :[^\s:"]匹配:由除空格字符以外的字符包圍的匹配,:或者"如果這些字符也是字串的一部分
請參閱rubular regex 演示。
您也可以只匹配第一部分,然后用空字串替換。
\bAPIAuth(?:-\S )?\s
查看另一個正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/468345.html
上一篇:如何使用字串提示獲取用戶輸入?
