不幸的是,在最新版本的Chrome中,负面网络过滤器不再起作用了。我使用这个过滤器是为了排除每个包含特定字符串的http调用。我在Chrome开发工具论坛中询问了解决方案,但目前没有人回答。因此,我想知道是否有一种方法可以用正则表达式语法解决这个问题(例如,排除包含字符串'loadMess'的每个调用)。
zpjtge221#
这是对我以前的回答的更新,以澄清这两个bug已经修复了一段时间。1.否定或排除过滤现在按预期工作。这意味着您可以使用my.com/path(显示与此匹配的请求)或-my.com/path(显示与此不匹配的请求)过滤请求路径。
my.com/path
-my.com/path
/my.com.path/
/^((?!my.com/path).)*$/
NOT
CONTAINS
loadMess
-loadMess
^((?!YOUR_STRING).)*$
^((?!loadMess).)*$
^
(?!loadMess)
.
()*
$
我发现在网络面板中DevTools处理Regex的方式有一个bug,这意味着上面的解决方法不起作用,尽管它是有效的。网络"面板按名称和路径进行过滤(从源代码中发现),但它执行两个"或"运算的测试。在上面的情况下,如果名称中有loadMess,但路径中没有(例如,不是域或目录),它将在任何一个上匹配。这意味着它只会过滤掉在Name和Path中都找到的loadMess。我在Chromium中创建了一个问题,随后推动了一个fix进行审查。这随后是merged。
ivqmmu1c2#
此问题在此处得到解答-适用于最新的Chrome 58.0.3029.110(官方版本)(64位)https://stackoverflow.com/a/27770139/4772631例如:如果我想排除所有的gif文件,只需输入-gif x1c 0d1x
-gif
8mmmxcuj3#
建议在任何地方使用负前瞻,但它不起作用。相反,"-myregex"确实对我有效,如下所示:-/(Violation|HMR)/.
-/(Violation|HMR)/
mccptt674#
Chrome broswer dev tools支持regrex过滤器不是很好。当我想隐藏一些请求时,它不像上面显示的那样工作。但是你可以使用-hide1-hide2来隐藏你想要的请求。只是在条件之间留一个空格,这与regrex不匹配,我猜原则上它可能使用字符串匹配而不是regrex
Chrome broswer dev tools
-hide1
-hide2
kuuvgm7e5#
过滤多个不同的url
您可以否定过滤网络呼叫的符号。例如:-lab.com将过滤lab.com网址。但要过滤多个url,您可以使用|正则表达式中的符号,例如:-/lab.com|mini.com/这将过滤lab.com和mini.com以及您可以使用它来过滤许多不同的网站或网址。
-lab.com
-/lab.com|mini.com/
11dmarpk6#
在最新的chrome版本(62)上,您必须用途:
-mime-type:image/gif
axzmvihb7#
您可以使用“Invert”选项排除与Filter文本框中的字符串匹配的API。
7条答案
按热度按时间zpjtge221#
这是对我以前的回答的更新,以澄清这两个bug已经修复了一段时间。
1.否定或排除过滤现在按预期工作。这意味着您可以使用
my.com/path
(显示与此匹配的请求)或-my.com/path
(显示与此不匹配的请求)过滤请求路径。/my.com.path/
和/^((?!my.com/path).)*$/
过滤,这将达到同样的结果。我把旧的答案留在这里供参考,它也解释了否定查找解决方案。
预定义的否定过滤器确实有效,但目前不允许您对Chrome稳定版中的姓名进行
NOT
过滤,只能对CONTAINS
进行过滤。这是一个bug问题,已在Chrome Canary中得到修复。一旦更改被推送到Chrome稳定版,您应该能够执行
loadMess
来只过滤该名称,执行-loadMess
来过滤掉该名称并保留其余名称,就像以前一样。解决方案:用于匹配不包含字符串的字符串的正则表达式
示例:
解释:
^
-字符串开头(?!loadMess)
-负前瞻(在此光标处,不匹配下一位,不捕获).
-匹配任何字符(换行符除外)()*
-0或以上的前述基团$
-字符串结束更新(2016年):
我发现在网络面板中DevTools处理Regex的方式有一个bug,这意味着上面的解决方法不起作用,尽管它是有效的。
网络"面板按名称和路径进行过滤(从源代码中发现),但它执行两个"或"运算的测试。在上面的情况下,如果名称中有
loadMess
,但路径中没有(例如,不是域或目录),它将在任何一个上匹配。这意味着它只会过滤掉在Name和Path中都找到的loadMess
。我在Chromium中创建了一个问题,随后推动了一个fix进行审查。这随后是merged。
ivqmmu1c2#
此问题在此处得到解答-适用于最新的Chrome 58.0.3029.110(官方版本)(64位)https://stackoverflow.com/a/27770139/4772631
例如:如果我想排除所有的gif文件,只需输入
-gif
x1c 0d1x8mmmxcuj3#
建议在任何地方使用负前瞻,但它不起作用。
相反,"-myregex"确实对我有效,如下所示:
-/(Violation|HMR)/
.mccptt674#
Chrome broswer dev tools
支持regrex过滤器不是很好。当我想隐藏一些请求时,它不像上面显示的那样工作。但是你可以使用
-hide1
-hide2
来隐藏你想要的请求。只是在条件之间留一个空格,这与regrex不匹配,我猜原则上它可能使用字符串匹配而不是regrex
kuuvgm7e5#
过滤多个不同的url
您可以否定过滤网络呼叫的符号。例如:
-lab.com
将过滤lab.com网址。但要过滤多个url,您可以使用|正则表达式中的符号,例如:
-/lab.com|mini.com/
这将过滤lab.com和mini.com以及您可以使用它来过滤许多不同的网站或网址。11dmarpk6#
在最新的chrome版本(62)上,您必须用途:
axzmvihb7#
您可以使用“Invert”选项排除与Filter文本框中的字符串匹配的API。