使用Perl或unix正则表达式,我如何捕获不是一系列值的单词。这就是我想要实现的目标。
(\w:not('int','long'))
答案 0 :(得分:9)
不确定这是否是有效的perl语法,但在“通用”风格中你可以说
/\b(?!int\b|long\b)\w+\b/
如果你想捕捉这个词,请将parens放在\w+
周围,就像这样
/\b(?!int\b|long\b)(\w+)\b/
答案 1 :(得分:6)
通常说得快:
my %exclude = map { $_ => 1 } qw/int long/;
my @words = grep { not exists $exclude{$_} } /(?:\b|^) (\w+) (?:\b|$)/gx;
尤其是在5.10之前的Perl版本上(当交替速度大幅提升时)。