如何使用正则表达式排除字符串?

aDo*_*DoN 5 regular-expression

我有一个名为 test 的文件:

http://edge.sharethis.com
http://edge.sharethis.com
https://timetosa.com
http://timetosa.com
https://webtest.es
holahttp.com
timetosa
Run Code Online (Sandbox Code Playgroud)

我想要一个排除包含 timetosa 的任何行的表达式。

这是不允许的 : cat test | grep -v timetosa,因为我想在另一个程序中使用纯正则表达式。

我知道这与^但无法找到正确的解决方案有关,以影响不包含字符串 timetosa 的解决方案:

cat test | sed 's/^[timetosa]//g'并且cat test | sed 's/^(timetosa)//g'没有成功。

有人可以帮我吗?

mik*_*erv 2

sed '/timetosa/d' <test
Run Code Online (Sandbox Code Playgroud)

...会做的。或者:

sed -n '/timetosa/!p' <test
Run Code Online (Sandbox Code Playgroud)

尽管如此(无论是否允许)

grep -v timetosa <test
Run Code Online (Sandbox Code Playgroud)

...将成为这三个解决方案中性能最高的解决方案 - 并且可能具有显着的优势。

感谢@Sparhawk,我找到了zaproxy 文档。基于此:

  • 网址正则表达式
    • “包含在*”、“排除在*”面板和“身份验证”面板的“登录/注销”指示符中,您可以输入正则表达式来定义排除的 URL。

...以及以下内容,我猜您正在尝试过滤上下文?根据文档,您可以同时执行包含排除列表:

  • 从上下文中排除
    • 这允许您管理将从上下文中排除的 URL。
    • 您只需为不想包含但与一个或多个包含正则表达式匹配的 URL 指定正则表达式

因此您可以排除一些以前包含的内容。

不过,这可能是第一部分并非完全无关紧要 - 文档还在附加组件部分中提到了这一点:

  • 调用应用程序

    • 可以通过传递上下文信息来调用其他应用程序,例如所选消息的 URL。
    • 例如,nmap可以通过传递您希望其扫描的站点来调用。

    • 使用“选项应用程序”屏幕配置应用程序。

  • 我*认为*他们要求的是通用正则表达式,而不是 grep/sed 中的特定实现,因为他们在“ZAP 代理”中使用它,无论是什么。 (2认同)