需要匹配但从列表中排除

时间:2012-10-27 15:31:26

标签: regex regex-negation regex-lookarounds

(AEF01?/.*|.*/FC070?/.*).*会找到

AEF01/AL020/na/na/na

ABB03/FC070/na/na/na

但不是

ANB00/FF030/na/na/na

但我反过来想要它 - 我希望它查看第一列并忽略任何AEF01代码但是在该列中选择其他任何内容并查看第二列并忽略{{1但是拿起别的东西。 FC070AEF01可能并不总是一起出现。

我已经尝试FC070[^](?!)都无济于事。 由于我的项目在没有这种表达的情况下停滞不前,我绝对不能解决这个问题。

2 个答案:

答案 0 :(得分:0)

我建议你使用正则表达式

((?<=^)(?!AEF01)[A-Z0-9]{5}(?=\/)|(?<=^[A-Z0-9]{5}\/)(?!FC070)[A-Z0-9]{5}(?=\/|$))

答案 1 :(得分:0)

更短的方式:

^(?!AEF01/)\w+/(?!FC070/)\w+/.*$

如果您需要排除下划线,则需要将\w更改为[A-Z0-9]

使用Boost正则表达式语法

在Sublime Text 2中测试