Инструмент Chrome dev: любой способ исключить каждый вызов, содержащий строку с регулярным выражением?

К сожалению, в последних версиях Chrome отрицательный сетевой фильтр больше не работает. Я использовал этот фильтр, чтобы исключить каждый HTTP-вызов, содержащий определенную строку. Я попросил решение на форуме инструментов Chrome dev, но на данный момент никто не ответил.

Итак, я хотел бы знать, есть ли способ решить эту проблему (и исключить, например, каждый вызов, содержащий строку "loadMess" ) с синтаксисом regex.

Большое спасибо

Ответы

Ответ 1

Обновление (2018):

Это обновление моего старого ответа, поясняющее, что обе ошибки уже исправлены в течение некоторого времени.

  1. Отрицание или исключение фильтрации работает, как ожидалось. Это означает, что вы можете фильтровать пути запросов с помощью my.com/path (показывать запросы, соответствующие этому) или -my.com/path (показывать запросы, не соответствующие этому).

  2. Решение regex также работает после того, как мое исправление PR сделало его в производстве. это означает, что вы также можете фильтровать с помощью /my.com.path/ и /^((?!my.com/path).)*$/, что даст тот же результат.

Я оставил здесь старый ответ для справки, и он также объясняет решение с отрицательным поиском.


Предопределенные негативные фильтры работают, но в настоящее время они не позволяют использовать фильтры NOT для имен в стабильной версии Chrome, только CONTAINS. Это ошибка, которая была исправлена в Chrome Canary.

Как только изменение будет перенесено в Chrome stable, вы сможете выполнить loadMess, чтобы фильтровать только по этому имени, и -loadMess, чтобы отфильтровать это имя и оставить остальное, как это было раньше.

Negative Filter

Обход проблемы: регулярное выражение для сопоставления строки, не содержащей строки

^((?!YOUR_STRING).)*$

Пример:

^((?!loadMess).)*$

Объяснение:

  • ^ - начало строки

  • (?!loadMess) - Отрицательный "lookahead" (у этого курсора не совпадает следующий бит без захвата)

  • . - соответствует любому символу (кроме разрывов строк)

  • ()* - 0 или более из предыдущей группы

  • $ - конец строки

Обновление (2016):

Я обнаружил, что на самом деле есть ошибка с тем, как DevTools работает с Regex на панели "Сеть". Это означает, что обходной путь выше не работает, несмотря на то, что он действителен.

Панель "Сеть" выполняет фильтрацию по имени и пути (как обнаружено из исходного кода), но выполняет два теста с ИЛИ. В приведенном выше случае, если у вас есть loadMess в имени, но нет в пути (например, не в домене или каталоге), он будет совпадать либо с ним. Для пояснения, true || false === true, что означает, что он будет отфильтровывать loadMess только в том случае, если он найден как в имени, так и в пути.

Я создал проблему в Chromium и впоследствии отправил исправление для проверки. Впоследствии это было объединено.

Ответ 2

Здесь дается ответ - для последнего Chrome 58.0.3029.110 (Official Build) (64-разрядная версия) fooobar.com/questions/70772/...

Например: если я хочу исключить все gifs, то просто введите -gif Вот краткий пример

Ответ 3

Chrome broswer dev tools поддержка regrex фильтра не очень хорошо.
Когда я хочу скрыть некоторые запросы, это не работает, как показано выше. Но вы можете использовать -hide1 -hide2, чтобы скрыть требуемый запрос.
Просто оставьте пробел между условиями, и это не соответствует regrex, я думаю, что он может использовать принципиальное сочетание строк, отличное от regrex

Ответ 4

В последней версии хрома (62) вы должны использовать:

-mime-type:image/gif

Ответ 5

Отрицательный "lookahead" рекомендуется везде, но он не работает.

Вместо этого "-myregex" работает для меня. Вот так: -/(Violation|HMR)/.