我有一个像<str1:str2:str3:str4:str5:;
我想将这些字符串分组为1美元,2美元,3美元,4美元,5美元。在这个输入中,字符串可能会来或者不会来。如果没有任何字符串,那么我们必须为一个组取空。然后最后,我们可能会收到一个以上的专栏。
我试过下面的代码。请输入任何内容
<filter regexp='s/^\s*<([\s\-A-Z_0-9,]*):?([\s\-A-Z_0-9,]*):?([\s\-A-Z_0-9,]*):?([\s\-A-Z_0-9,]*):?([\s\-A-Z_0-9,]*):?([\s\-A-Z_0-9,]*):*;.*$/keep_it_method_name $1 aid $2 ctag $3 General_block $4 Data_block $5/'/>
答案 0 :(得分:1)
假设字符串中总共有五个冒号,我建议你做这样的事情
use strict;
use warnings 'all';
use feature 'say';
my $s = '<str1:str2:str3:str4:str5:;';
my $re = '([^<>:;]*):' x 5;
$re = qr/<$re;/;
if ( $s =~ $re ) {
no strict 'refs';
say ${$_} for 1 .. 5;
}
str1
str2
str3
str4
str5