Chrome开发工具:有没有办法排除URL与正则表达式匹配的请求?

ac1kyiln  于 2023-02-01  发布在  Go
关注(0)|答案(7)|浏览(205)

不幸的是,在最新版本的Chrome中,负面网络过滤器不再起作用了。我使用这个过滤器是为了排除每个包含特定字符串的http调用。我在Chrome开发工具论坛中询问了解决方案,但目前没有人回答。
因此,我想知道是否有一种方法可以用正则表达式语法解决这个问题(例如,排除包含字符串'loadMess'的每个调用)。

zpjtge22

zpjtge221#

    • 更新(2018年):**

这是对我以前的回答的更新,以澄清这两个bug已经修复了一段时间
1.否定或排除过滤现在按预期工作。这意味着您可以使用my.com/path(显示与此匹配的请求)或-my.com/path(显示与此不匹配的请求)过滤请求路径。

  1. regex解决方案在我的PR修复程序投入生产后也能正常工作。这意味着你也可以用/my.com.path//^((?!my.com/path).)*$/过滤,这将达到同样的结果。
    我把旧的答案留在这里供参考,它也解释了否定查找解决方案。
    预定义的否定过滤器确实有效,但目前不允许您对Chrome稳定版中的姓名进行NOT过滤,只能对CONTAINS进行过滤。这是一个bug问题,已在Chrome Canary中得到修复。
    一旦更改被推送到Chrome稳定版,您应该能够执行loadMess来只过滤该名称,执行-loadMess来过滤掉该名称并保留其余名称,就像以前一样。

解决方案:用于匹配不包含字符串的字符串的正则表达式

^((?!YOUR_STRING).)*$

示例:

^((?!loadMess).)*$

解释:

  • ^-字符串开头
  • (?!loadMess)-负前瞻(在此光标处,不匹配下一位,不捕获)
  • .-匹配任何字符(换行符除外)
  • ()*-0或以上的前述基团
  • $-字符串结束

更新(2016年):

我发现在网络面板中DevTools处理Regex的方式有一个bug,这意味着上面的解决方法不起作用,尽管它是有效的。
网络"面板按名称和路径进行过滤(从源代码中发现),但它执行两个"或"运算的测试。在上面的情况下,如果名称中有loadMess,但路径中没有(例如,不是域或目录),它将在任何一个上匹配。这意味着它只会过滤掉在Name和Path中都找到的loadMess
我在Chromium中创建了一个问题,随后推动了一个fix进行审查。这随后是merged

ivqmmu1c

ivqmmu1c2#

此问题在此处得到解答-适用于最新的Chrome 58.0.3029.110(官方版本)(64位)https://stackoverflow.com/a/27770139/4772631
例如:如果我想排除所有的gif文件,只需输入-gif x1c 0d1x

8mmmxcuj

8mmmxcuj3#

建议在任何地方使用负前瞻,但它不起作用。
相反,"-myregex"确实对我有效,如下所示:-/(Violation|HMR)/.

mccptt67

mccptt674#

Chrome broswer dev tools支持regrex过滤器不是很好。
当我想隐藏一些请求时,它不像上面显示的那样工作。但是你可以使用-hide1-hide2来隐藏你想要的请求。
只是在条件之间留一个空格,这与regrex不匹配,我猜原则上它可能使用字符串匹配而不是regrex

kuuvgm7e

kuuvgm7e5#

过滤多个不同的url

您可以否定过滤网络呼叫的符号。例如:-lab.com将过滤lab.com网址。
但要过滤多个url,您可以使用|正则表达式中的符号,例如:-/lab.com|mini.com/这将过滤lab.com和mini.com以及您可以使用它来过滤许多不同的网站或网址。

11dmarpk

11dmarpk6#

在最新的chrome版本(62)上,您必须用途:

-mime-type:image/gif
axzmvihb

axzmvihb7#

您可以使用“Invert”选项排除与Filter文本框中的字符串匹配的API。

相关问题