Chrome开发工具:以任何方式排除包含正则表达式字符串的每个调用?

sui*_*koy 56 regex networking google-chrome google-chrome-devtools

不幸的是,在最新版本的Chrome中,负面网络过滤器不再起作用了.我使用此过滤器来排除包含特定字符串的每个http调用.我在Chrome开发工具论坛中问过一个解决方案,但目前没有人回答.

所以我想知道是否有办法解决这个问题(并排除例如包含字符串'loadMess'的每个调用)与regex语法.

非常感谢

Gid*_*zer 95

更新(2018年):

这是对我的旧答案的更新,以澄清这两个错误已经修复了一段时间了.

  1. 否定或排除过滤现在正如预期的那样工作.这意味着您可以使用my.com/path(显示请求与此匹配)来过滤请求路径,或者-my.com/path(显示请求与此不匹配).

  2. 在我的PR修复程序投入生产后,正则表达式解决方案也可以运行.这意味着您也可以使用/my.com.path/和过滤/^((?!my.com/path).)*$/,这将获得相同的结果.

我在这里留下了旧答案以供参考,它也解释了否定查找解决方案.


预定义的负面过滤器可以正常工作,但目前它不允许您NOT仅对Chrome中的名称进行过滤CONTAINS.这是Chrome Canary中修复的错误.

将更改推送到Chrome稳定版后,您应该能够loadMess仅对该名称-loadMess进行过滤,并过滤掉该名称并保留其余名称,如前所述.

负滤波器

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

^((?!YOUR_STRING).)*$
Run Code Online (Sandbox Code Playgroud)

例:

^((?!loadMess).)*$
Run Code Online (Sandbox Code Playgroud)

说明:

  • ^ - 字符串开头

  • (?!loadMess) - 否定前瞻(在此光标处,与下一位不匹配,未捕获)

  • . - 匹配任何字符(换行符除外)

  • ()* - 前一组中的0或更多

  • $ - 字符串结束

更新(2016年):

我发现DevTools在网络面板中如何处理Regex实际上存在一个错误.这意味着上面的解决方法不起作用,尽管它是有效的.

"网络"面板过滤了"名称"和"路径"(从源代码中发现),但它执行了两个OR运算的测试.在上面的例子中,如果你有loadMess名字,但没有在路径(例如不是域或目录),它将匹配任何一个.澄清true || false === true一下,这意味着只有loadMess在名称和路径中找到它时才会过滤掉它.

我在Chromium中创建了一个问题,并随后推出了一个修复程序进行审核.这随后被合并了.

  • @suikoy我在源代码中发现了这个问题!我打算去修理它.如果我设法设置并提出拉取请求,那将是非常酷的.我会及时向大家发布! (3认同)
  • @suikoy我花了最后一个小时尝试了所有事情,但看不到为什么失败了。我用JavaScript测试过,对我来说很好用。DevTools中使用的Regex解析器可能有些不可靠。我将继续研究这个问题。同时,我想只能使用Chrome Canary。 (2认同)
  • @HussienK修订于[54.0.2832.2](https://chromium.googlesource.com/chromium/src/+log/54.0.2832.2/?s=c002b266f83798e8c652a641f74b381f7fb82171). (2认同)
  • 编辑:否定的前瞻不起作用,`-stringToAvoid`似乎起作用,我将使用它 (2认同)
  • 负前瞻不起作用。但“-my_regex”确实有效。像这样:-/(违规|HMR)/ (2认同)

小智 30

这里有解答 - 最新的Chrome 58.0.3029.110(官方版本)(64位) /sf/answers/1943909761/

例如:如果我想排除所有的GIF,那么只需输入 -gif 这是一个简短的例子


jer*_*vis 15

到处都推荐负前瞻,但它不起作用。

相反,“-myregex”确实对我有用。像这样:-/(Violation|HMR)/