Chrome Dev Tool: Gibt es eine Möglichkeit, jeden Aufruf auszuschließen, der eine Zeichenfolge mit Regex enthält?

73

Leider funktioniert der negative Netzwerkfilter in den letzten Versionen von Chrome nicht mehr. Ich habe diesen Filter verwendet, um jeden http-Aufruf auszuschließen, der eine bestimmte Zeichenfolge enthält. Ich habe im Chrome Dev Tool Forum nach einer Lösung gefragt, aber im Moment hat niemand geantwortet.

Daher möchte ich wissen, ob es eine Möglichkeit gibt, dieses Problem mit Regex-Syntax zu lösen (und beispielsweise jeden Aufruf mit der Zeichenfolge 'loadMess' auszuschließen).

Danke vielmals

Suikoy
quelle

Antworten:

116

Update (2018):

Dies ist ein Update meiner alten Antwort, um zu verdeutlichen, dass beide Fehler seit einiger Zeit behoben sind .

  1. Das Filtern oder Ausschließen der Filterung funktioniert jetzt wie erwartet. Das heißt, Sie können Anforderungspfade filtern mit my.com/path(Anforderungen anzeigen, die dazu passen) oder -my.com/path(Anforderungen anzeigen, die nicht übereinstimmen).

  2. Die Regex-Lösung funktioniert auch, nachdem mein PR-Fix es in der Produktion geschafft hat. Das heißt, Sie können auch mit /my.com.path/und filtern /^((?!my.com/path).)*$/, wodurch das gleiche Ergebnis erzielt wird.

Ich habe die alte Antwort hier als Referenz hinterlassen und sie erklärt auch die negative Suchlösung.


Die vordefinierten Negativfilter funktionieren zwar, aber Sie können derzeit nur keine NOTFilter für die Namen in Chrome Stable ausführen CONTAINS. Dies ist ein Fehler , der in Chrome Canary behoben wurde.

Sobald die Änderung auf Chrome Stable übertragen wurde, sollten Sie in der Lage sein, loadMessnur nach diesem Namen -loadMesszu filtern, diesen Namen herauszufiltern und den Rest wie zuvor zu belassen.

Negativer Filter

Problemumgehung: Regex für den Abgleich einer Zeichenfolge, die keine Zeichenfolge enthält

^((?!YOUR_STRING).)*$

Beispiel:

^((?!loadMess).)*$

Erläuterung:

  • ^ - Beginn der Zeichenfolge

  • (?!loadMess) - Negativer Lookahead (bei diesem Cursor nicht mit dem nächsten Bit übereinstimmen, ohne zu erfassen)

  • . - Entspricht einem beliebigen Zeichen (außer Zeilenumbrüchen)

  • ()* - 0 oder mehr der vorhergehenden Gruppe

  • $ - Ende der Zeichenfolge

Update (2016):

Ich habe festgestellt, dass es tatsächlich einen Fehler im Umgang von DevTools mit Regex im Netzwerkfenster gibt. Dies bedeutet, dass die oben beschriebene Problemumgehung nicht funktioniert, obwohl sie gültig ist.

Das Netzwerkfenster filtert nach Name und Pfad (wie aus dem Quellcode hervorgeht), führt jedoch zwei Tests durch, die ODER-verknüpft sind. Wenn Sie loadMessim obigen Fall den Namen, aber nicht den Pfad (z. B. nicht die Domäne oder das Verzeichnis) angegeben haben, stimmt dies auch überein. Zur Verdeutlichung true || false === truebedeutet dies, dass nur dann herausgefiltert wird, loadMesswenn es sowohl im Namen als auch im Pfad gefunden wird.

Ich habe ein Problem in Chromium erstellt und anschließend einen Fix zur Überprüfung verschoben. Dies wurde anschließend zusammengeführt .

Gideon Pyzer
quelle
1
wirklich vollständige Erklärung, aber es funktioniert nicht ... Ein Beispiel hier: s31.postimg.org/53odofq23/Schermata_del_2016_07_22_15_17_59.png . Ich habe Chrome Version 52.0.2743.82 (64-Bit)
Suikoy
2
@suikoy Ich habe die letzte Stunde damit verbracht, alles auszuprobieren und kann nicht sehen, warum es fehlschlägt. Ich habe in JavaScript getestet und es funktioniert gut für mich. Der in DevTools verwendete Regex-Parser könnte etwas zweifelhaftes sein. Ich werde mich weiter darum kümmern. In der Zwischenzeit benutze ich wohl nur Chrome Canary.
Gideon Pyzer
3
@suikoy Ich habe das Problem im Quellcode gefunden! Ich werde mich darum kümmern, das Problem zu beheben. Es wird super cool sein, wenn ich es schaffe, Dinge einzurichten und eine Pull-Anfrage zu stellen. Ich werde euch auf dem Laufenden halten!
Gideon Pyzer
2
@HussienK Es wurde in 54.0.2832.2 behoben .
Gideon Pyzer
3
bearbeiten: der negative Lookahead funktioniert nicht, -stringToAvoidscheint zu funktionieren und ich werde das verwenden
Anomalie
38

Dies wird hier beantwortet - für den neuesten Chrome 58.0.3029.110 (Official Build) (64-Bit) https://stackoverflow.com/a/27770139/4772631

Beispiel: Wenn ich alle Gifs ausschließen möchte, tippe einfach -gif Hier ist ein kurzes Beispiel

Johnny C.
quelle
Ab Juli 2019 funktioniert dies gut für mich für einfache Saiten
imjared
7

Negativer Lookahead wird überall empfohlen, funktioniert aber nicht.

Stattdessen funktioniert "-myregex" für mich. So : -/(Violation|HMR)/.

jeron-diovis
quelle
3

Chrome broswer dev toolsUnterstützung Regrex Filter nicht sehr gut.
Wenn ich einige Anfragen ausblenden möchte, funktioniert dies nicht wie oben gezeigt. Sie können -hide1 -hide2jedoch die gewünschte Anfrage ausblenden.
Lassen Sie einfach ein Leerzeichen zwischen den Bedingungen, und dies stimmt nicht mit dem Regrex überein. Ich denke, es wird möglicherweise eine andere Zeichenfolgenübereinstimmung als Regrex verwendet

Marx Wolf
quelle
0

Bei der neuesten Chromversion (62) müssen Sie Folgendes verwenden:

-mime-type:image/gif
Vincent Guesné
quelle