gpt4 book ai didi

regex - 为什么此代码会跳过所有其他输入行

转载 作者:行者123 更新时间:2023-12-02 14:25:32 25 4
gpt4 key购买 nike

我试图通过正则表达式循环数据并按日期(即 7/9/2019)解析每一行。但是,结果省略了输入数据中的每隔一行。

在 Windows 和 Mac(终端 shell)上尝试过此操作,结果一致。

my $file;

{
local $/ = undef;
$file = <DATA>;
}

while ($file =~ m/(\d\/\d\/\d{4}.*?)\d\/\d\/\d{4}/gs) {
print "*$1*\n";
}

__DATA__
9/7/2019 20:35:17,dog
9/7/2019 21:06:16,cat
9/7/2019 22:32:15,parrot
9/7/2019 22:32:15,snail
9/7/2019

我期望以下内容:

*9/7/2019 20:35:17,dog*
*9/7/2019 21:06:16,cat*
*9/7/2019 22:32:15,parrot*
*9/7/2019 22:32:15,snail*

而是得到以下内容:

*9/7/2019 20:35:17,dog
*
*9/7/2019 22:32:15,parrot
*

最佳答案

您没有封装模式的结尾。将 while 循环更改为:

 while ($file =~ m/(\d\/\d\/\d{4}.*?)(?=\R\d\/\d\/\d{4})/gs) {
print "*$1*\n";
}

这应该适合你。测试一下:https://rextester.com/l/perl_online_compiler

关于regex - 为什么此代码会跳过所有其他输入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58294048/

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