gpt4 book ai didi

regex - 解析perl正则表达式中的多行并提取值

转载 作者:行者123 更新时间:2023-12-02 08:56:30 26 4
gpt4 key购买 nike

我是 Perl 的初学者。我有一个文本文件,其文本类似于如下所示。我需要提取 VALUE="<NEEDED VALUE>"。就菠菜而言,我应该单独吃沙拉。

如何使用perl正则表达式获取值。我需要解析多行才能得到它。即每个 #ifonly --- #endifonly 之间

$cat check.txt

while (<$file>)
{
if (m/#ifonly .+ SPINACH .+ VALUE=(")([\w]*)(") .+ #endifonly/g)
{
my $chosen = $2;
}
}


#ifonly APPLE CARROT SPINACH
VALUE="SALAD" REQUIRED="yes"
QW RETEWRT OIOUR
#endifonly
#ifonly APPLE MANGO ORANGE CARROT
VALUE="JUICE" REQUIRED="yes"
as df fg
#endifonly

最佳答案

use strict;
use warnings;
use 5.010;

while (<DATA>) {
my $rc = /#ifonly .+ SPINACH/ .. (my ($value) = /VALUE="([^"]*)"/);
next unless $rc =~ /E0$/;
say $value;
}

__DATA__
#ifonly APPLE CARROT SPINACH
VALUE="SALAD" REQUIRED="yes"
QW RETEWRT OIOUR
#endifonly
#ifonly APPLE MANGO ORANGE CARROT
VALUE="JUICE" REQUIRED="yes"
as df fg
#endifonly

这使用了 brian d foy here 描述的一个小技巧。 。正如链接所述,它使用标量 range operator / flipflop .

关于regex - 解析perl正则表达式中的多行并提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4450905/

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