需要从包含另一个单词的多行中排除单词

时间:2016-05-23 15:28:12

标签: javascript regex

我想找到FAIL,但如果它位于包含Advocacy的同一行,则不会。{/ p>

如果服务状态为关闭,页面上的几行包含FAIL。我试图在整个文档中找到FAIL,但排除包含另一个单词的每一行。

示例:

  • Advocacy WS Ping <10 FAIL URL: https://ncweb.blackbaud.com/CapWizService/MasterService.asmx
  • Advocacy WS URL <10 FAIL Advocacy URL:
  • Advocacy Target Service Web Service Ping <10 FAIL https://AdvocacyService.Blackbaudhosting.com/MasterService.asmx
  • BBDM End Point Ping <10 FAIL URL: https://bbisec04pro.blackbaudhosting.com/14546P_f7ca13f1-5e8f-48a5-aad2-0867d2b2f72e/Download/CustomFileDownload.ashx

所以前3行都包含Advocacy并处于失败状态。谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

使用否定先行断言

/^(?!.*Advocacy.*).*(FAIL)/gm

这表示匹配行的开头,并确保开头没有跟着(任意数量的字符后跟&#34; Advocacy&#34;),但实际上并不匹配任何一个。然后,一旦你检查了&#34;宣传&#34;不在线上的任何地方,寻找任意数量的字符,然后是&#34; FAIL&#34;。

https://regex101.com/r/vY1yO6/2查看您的测试数据

答案 1 :(得分:1)

  

grep FAIL&lt; somepage.html | grep -v宣传