Marian Paździoch Marian Paździoch - 1 month ago 46
HTTP Question

How to modify HTTP response body with Charles Proxy rewrite tool and regex?

I'm trying to change HTTP response body with Charles Proxy using rewrite tool / regex? The response is a JSON.

So part of the returned response JSON body is:

"unavailablePosts": ["AA", "BB"],


and what I want is:

"unavailablePosts": "XXX",


I try to set up Charles' rewrite like this:

enter image description here

So the regex is like:

"unavailablePosts": \[(.*)\],


But ... (as I'm asking this question) it does not work, i.e. nothing is changed in response body.

Answer

I believe there are some linebreaks in between the values, and to match them you need to add \s* (zero or more whitespaces) around : and use [\s\S]*? (any 0+ chars but as few as possible as *? is a lazy quantifier) to match the substring between [ and ],:

 "unavailablePosts"\s*:\s*\[([\s\S]*?)\],