我试图理解正则表达式处理中的 前瞻 和 后顾。
假设我有一个文件列出了 PIDs 和其他内容,我想构建一个正则表达式来匹配 PID 格式 \d{1,5} ,但也需要排除某个特定的 PID。
$myself = $$;
@file = `cat $FILE`;
@pids = grep /\d{1,5}(?<!$myself)/, @file;
在这个正则表达式中,我尝试使用否定回顾 (?<!TO_EXCLUDE) 结构将数字匹配和排除组合在一起。但是这样做不起作用。
示例文件:
456
789
4567
345
22743
root
bin
sys
希望有人能指导我正确的方向。
同时,我想知道在这种情况下,这种负向回顾是否最有效。