Return 如果使用 Powershell 在文本中找到两个模式,则为真

Return True if two patterns are found in text with Powershell

这似乎是一项简单的任务,但我似乎无法让它发挥作用。我希望能够读取文本文件,如果找到两个准确的模式 return True。如果它只找到一个,那么它 return 是错误的。

我试过了,但没用:

Get-Content $log_path | Select-String -pattern "\bInstallation of\b|\bfailed\b" -AllMatches -quiet

接下来我可以尝试什么?

你的模式包含一个或 | 基本上说的声明。

如果存在其中之一(安装或失败),则匹配。 您想要的是改用通配符,这样单词和中间词都是同一匹配项的一部分。

Select-String -pattern "\bInstallation .* failed\b"  -quiet

补充说明

遇到问题时,可以使用在线正则表达式测试器来测试正则表达式。

我个人非常喜欢 RegexHero 即使您需要 IE,因为它是在 Silverlight 中完成的,因为它有一个用于正则表达式的分析部分,可以分解您的表达式并用文字解释您的内容正在做。

在学习或处理总是更复杂的表达式时非常有用。

例如,您的初始正则表达式。

虽然我没有亲自使用过,但RegexStorm看起来也很有前途,并且不受IE限制。