正则表达式会匹配前面没有字符串"soft"的字符串"war"的出现?换句话说,"第三次世界大战"中的"战争"会匹配,但"我的软件在哪里"的"战争"不会?此外,"远离我的仓库"将匹配,因此"意识到".换句话说,我只是不希望字符串"软件"匹配.
如果您正则表达式引擎支持lookbehinds: (?<!soft)war.
您可以使用Perl尝试:
$ perl -ne 'print if /(?<!soft)war/i' < my-text-file
Run Code Online (Sandbox Code Playgroud)
这或多或少会起作用grep(但grep不支持lookbehinds,afaik).