我有这样的文字:
Run Code Online (Sandbox Code Playgroud)00:00 stuff 00:01 more stuff multi line and going 00:02 still have
所以,我没有一个块结束,只是一个新的块启动.
我想以递归方式获取所有块:
Run Code Online (Sandbox Code Playgroud)1 = 00:00 stuff 2 = 00:01 more stuff multi line and going
等等
波纹管代码只给我这个:
$VAR1 = '00:00';
$VAR2 = '';
$VAR3 = '00:01';
$VAR4 = '';
$VAR5 = '00:02';
$VAR6 = '';
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
my $text = '00:00 stuff
00:01 more stuff
multi line
and going
00:02 still
have
';
my @array = $text =~ m/^([0-9]{2}:[0-9]{2})(.*?)/gms;
print Dumper(@array);
Run Code Online (Sandbox Code Playgroud)
这应该可以解决问题。下一个\d\d:\d\d 的开头被视为块结束。
use strict;
my $Str = '00:00 stuff
00:01 more stuff
multi line
and going
00:02 still
have
00:03 still
have' ;
my @Blocks = ($Str =~ m#(\d\d:\d\d.+?(?:(?=\d\d:\d\d)|$))#gs);
print join "--\n", @Blocks;
Run Code Online (Sandbox Code Playgroud)