17

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.

Marian Paździoch
  • 8,813
  • 10
  • 58
  • 103

2 Answers2

8

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]*?)\],
Wiktor Stribiżew
  • 607,720
  • 39
  • 448
  • 563
2

I had similar issue. In this case Regex is ("unavailablePosts":)"[\s\S]*?" Value for replace is $1"anything"