Regex 需要匹配但从列表中排除

Regex 需要匹配但从列表中排除,regex,regex-negation,regex-lookarounds,Regex,Regex Negation,Regex Lookarounds,(AEF01?/.* AEF01/AL020/na/na/na 及 但不是 ANB00/FF030/na/na/na 但我希望它反过来-我希望它看第一列,忽略任何AEF01代码,但选择该列中的任何其他内容,也看第二列,忽略FC070,但选择其他内容AEF01和FC070可能并不总是同时出现 我试过[^]和(?!)和(?)都没有用。 我很想解决这个问题,因为我的项目在没有这个表达式的情况下停止了。我建议您使用正则表达式模式 ((?<=^)(?!AEF01)[A-Z0-9]{5}(?=\/

(AEF01?/.*

AEF01/AL020/na/na/na

但不是

ANB00/FF030/na/na/na
但我希望它反过来-我希望它看第一列,忽略任何
AEF01
代码,但选择该列中的任何其他内容,也看第二列,忽略
FC070
,但选择其他内容
AEF01
FC070
可能并不总是同时出现

我试过
[^]
(?!)
(?)都没有用。

我很想解决这个问题,因为我的项目在没有这个表达式的情况下停止了。

我建议您使用正则表达式模式

((?<=^)(?!AEF01)[A-Z0-9]{5}(?=\/)|(?<=^[A-Z0-9]{5}\/)(?!FC070)[A-Z0-9]{5}(?=\/|$))
((?较短的方式:

^(?!AEF01/)\w+/(?!FC070/)\w+/.*$
如果需要排除下划线,则需要将
\w
更改为
[A-Z0-9]


在使用正则表达式语法的Sublime Text 2中测试,你能再澄清一点吗?
^
(?@m.buettner-没什么,只是美:)这样
的两个部分(..|…)
模式使用相同的逻辑,因为它们有lookbehind和lookahead。但我认为您匹配了错误的位。正如我读到的,他希望匹配所有行,但在带有
AEF01
FC070
的行中,他希望删除这些列。这必须通过捕获组和/或替换来完成;)。
^(?!AEF01/)\w+/(?!FC070/)\w+/.*$