为 mitmproxy 添加 map-local 选项时如何转义正则表达式中的斜杠?

How to escape the slash in regex when adding map-local option for mitmproxy?

我想添加 map-local 选项以将本地文件 RPC01-3103/1011001/mobile_configs_<UUID>.json 映射到 mitmproxy 的路径 *mobile_configs/<UUID>。 但是,当我尝试如下所示转义斜杠时(89bb3783-5a6f-46be-bb9e-291db5c746e1 是 UUID,例如),mitmproxy 会引发错误。

--map-local "/~d text\.com/mobile_configs\/89bb3783-5a6f-46be-bb9e-291db5c746e1/RPC01-3103/1011001/mobile_configs_89bb3783-5a6f-46be-bb9e-291db5c746e1.json"

返回错误如下

Cannot parse map_local option /~d test\.com/mobile_configs\/89bb3783-5a6f-46be-bb9e-291db5c746e1/RPC01-3103/1011001/mobile_configs_89bb3783-5a6f-46be-bb9e-291db5c746e1.json: Invalid regular expression 'mobile_configs\' (bad escape (end of pattern) at position 14)

要解决此问题,需要按以下方式设置选项。

--map-local "/~d text\.com/mobile_configs\.89bb3783-5a6f-46be-bb9e-291db5c746e1/RPC01-3103/1011001/mobile_configs_89bb3783-5a6f-46be-bb9e-291db5c746e1.json"

我想知道转义斜杠的正确方法是什么。 提前致谢。

您无法转义分隔符,但可以选择任意分隔符。而不是

/example.com/static/~/static   # wrong

你可以写

|example.com/static|~/static    

例如。或者@example.com/static@~/static,或者#example.com/static#~/static,或者....