1

В прокси Чарльза я пытаюсь использовать правило перезаписи для сопоставления с шаблоном, который охватывает три строки в теле ответа, используя \s* в значении Match (с проверкой 'Regex'), чтобы соответствовать новым строкам.

Похоже, что Чарльз не будет соответствовать шаблону через несколько строк, но я не смог подтвердить это в документации Чарльза. Может ли кто-либо подтвердить, так или иначе, могут ли правила переписывания Чарльза соответствовать шаблонам более чем на одной строке?

2 ответа2

2

Можно выполнить многострочный поиск в Чарльзе с помощью следующего:

[\S \S] *

Например, предположим, что существует документ XML, и я хочу начать поиск по известному имени узла и продолжать поиск, пока не будет найден атрибут @knownAttribute на n строк ниже известного имени узла

Шаблон регулярного выражения в Чарльзе будет:

knownNodeName> [\s\S] * knownAttributeNLineBelow

Это работает!

Если вы хотите сделать его немного более сложным и фактически захватить что-то из атрибута и заново вставить его в документ (это была моя конечная цель), вы можете выполнить это, выполнив в Charles:

Значение соответствия: knownNodeName>([\s\S] * knownAttributeNLineBelow = ")(\w+)

Заменить значение:
knownNodeName> newNode @ attr = $ 2 /> $ 1 $ 2

1

Я не знаю, что вы можете сделать это в общем, но я придумал это, которое работает для конкретных случаев новой строки:

"group":.*[\n\r]*.*".*"

Короче говоря, если вы явно пометите символ новой строки в классе символов, он может быть использован в шаблоне. Подстановочные знаки как . и границы буфера как ^ и $ не делают.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .