我无法让消极的前瞻性工作。
我想捕获文件中所有提到“警告”或“错误”的行,但如果该行也提到“clearmake”则不会。
所以它应该抓住这个:
This is a warning : bla bla
但不是这个:
clearmake.exe: This is a warning : bla bla
我玩过负前瞻,但我无法让它工作
(?!clearmake).*$
有什么想法吗?谢谢!
我无法让消极的前瞻性工作。
我想捕获文件中所有提到“警告”或“错误”的行,但如果该行也提到“clearmake”则不会。
所以它应该抓住这个:
This is a warning : bla bla
但不是这个:
clearmake.exe: This is a warning : bla bla
我玩过负前瞻,但我无法让它工作
(?!clearmake).*$
有什么想法吗?谢谢!
您可以在正则表达式中执行此操作,但您需要对正则表达式进行高级理解。if()
如果您使用 2 个或逻辑运算符和正常的字符串搜索来执行此任务,可能会更容易阅读/理解。
您应该始终为此类问题提供语言标签,以便有机会获得替代答案。
我解释了一个正则表达式解决方案,我假设您正在逐行读取该文件。
您想匹配warning
OR error
==> 使用替代\b(?:error|warning)\b
。
但不是在包含clearmake
==>的行中^(?!.*\bclearmake\b)
所以你的正则表达式看起来像这样:
^(?!.*\bclearmake\b).*\b(?:error|warning)\b
你可以试试这个
^(?!.*\bclearmake\b).*(warning|error).*$
---------------
|
|->match further only if the string doesn't have clearmake