gpt4 book ai didi

regex - Perl 正则表达式否定回顾

转载 作者:行者123 更新时间:2023-12-01 07:07:31 24 4
gpt4 key购买 nike

试图在正则表达式处理中围绕前瞻和后视。

假设我有一个列出 PID 和其他内容的文件。我想构建一个正则表达式来匹配 PID 格式 \d{1,5} 但这也排除了某个 PID。

$myself = $$;
@file = `cat $FILE`;
@pids = grep /\d{1,5}(?<!$myself)/, @file;

在这个正则表达式中,我尝试使用 (? 构造使用负向后视将数字匹配与排除组合。这不起作用。

示例文件:
456
789
4567
345
22743
root
bin
sys

如果有人能指出我正确的方向,我将不胜感激。

也很想知道这种负面的后视在这种情况下是否是最有效的。

最佳答案

“往后看”真的是往后看。因此,您可以检查 PID 前面是否有某些内容,而不是它是否匹配某些内容。如果只想排除$$,可以更直接:

@file = `cat $FILE`;
@pids = grep /(\d{1,5})/ && $1 ne $$, @file;

关于regex - Perl 正则表达式否定回顾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11083278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com