使用Perl或unix正则表达式,我如何捕获不是一系列值的单词.这是我想要实现的目标.
(\w:not('int','long'))
Run Code Online (Sandbox Code Playgroud)
不确定这是否是有效的perl语法,但你可以说"通用"的味道
/\b(?!int\b|long\b)\w+\b/
Run Code Online (Sandbox Code Playgroud)
如果你想捕捉这个词,就把parens放在一边\w+,就像这样
/\b(?!int\b|long\b)(\w+)\b/
Run Code Online (Sandbox Code Playgroud)
通常说:
my %exclude = map { $_ => 1 } qw/int long/;
my @words = grep { not exists $exclude{$_} } /(?:\b|^) (\w+) (?:\b|$)/gx;
Run Code Online (Sandbox Code Playgroud)
尤其是在5.10之前的Perl版本上(当交替速度大幅增加时).