web-dev-qa-db-fra.com

Comment modifier le corps de réponse HTTP avec l'outil de réécriture Charles Proxy et regex?

J'essaye de changer le corps de réponse HTTP avec Charles Proxy en utilisant rewrite tool/regex? La réponse est un JSON.

Donc, une partie du corps JSON de réponse renvoyé est:

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

et ce que je veux c'est:

"unavailablePosts": "XXX",

J'essaye de mettre en place la réécriture de Charles comme ceci:

 enter image description here

Donc, la regex est comme:

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

Mais ... (en posant cette question), cela ne fonctionne pas, c’est-à-dire que rien n’a changé dans le corps de la réponse.

9

Je crois qu'il y a des sauts de ligne entre les valeurs et pour les faire correspondre, vous devez ajouter \s* (zéro espace ou plus) autour de : et utiliser [\s\S]*? (tous les caractères 0+ mais aussi peu que possible car *? est un quantificateur paresseux) pour correspondre la sous-chaîne entre [ et ],:

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

J'ai eu le même problème. Dans ce cas, l'expression rationnelle est ("unavailablePosts":)"[\s\S]*?" La valeur de remplacement est $1"anything"

1
Andrii Koshman