PERL Regex否定问题

时间:2015-04-14 06:43:15

标签: regex perl

我写了一个正则表达式来挑选格式的文件 perl中的(ABC.*\.DAT)

如何为上述正则表达式写一个否定?

我已尝试过像(?!ABC.*)\.DAT(?!(ABC.*\.DAT))

这样的表达式

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

(?s:(?!ABC).)*\.DAT

你可以尝试这种基于正则表达式的否定。请参阅demo

以上内容可以安全地嵌入到更大的模式中。例如,

/^(?:(?!ABC).)*\.DAT\z/s

如果您尝试匹配整个输入,并且ABC不以..D.DA.DAT结尾,那么下面会更快:

/^(?!.*ABC)\.DAT\z/s