一个关于正则表达式的问题

一个关于正则表达式的问题

输入一个字符串,按照关键字把此字符串分解成子字符串数组。
例如:关键集合为:{A,B,C,D,E.....}
         输入字符串为:AXXXXBXXXXAYYYYY
         输出应为:{AXXXX},{bXXXX},{AYYYY}
我觉得如果一次比较关键字分解字符串效率不是很好,代码也比较冗长,所以想用正则表达式实现,不过想了几种都不能达到目的,不知道大侠是否有好方法实现这个问题。
在线等....
my @arr="AXXXXBXXXXAYYYY"=~/([A-Z]{5})/g;


QUOTE:
原帖由 feiyang21687 于 2007-10-6 00:36 发表
输入一个字符串,按照关键字把此字符串分解成子字符串数组。
例如:关键集合为:{A,B,C,D,E.....}
         输入字符串为:AXXXXBXXXXAYYYYY
         输出应为:{AXXXX},{bXXXX},{AYYYY}
我觉得如果一次比 ...
在线等....

晚上12点在线等... 强的


1. 每个关键字均为单字符? 范围为大小写字母?

2. 每个关键字对应的字符串, 长度均为4?


QUOTE:
原帖由 Lonki 于 2007-10-6 09:44 发表



晚上12点在线等... 强的


1. 每个关键字均为单字符? 范围为大小写字母?

2. 每个关键字对应的字符串, 长度均为4?

一边看WCG,一边等啊!^_^

1.关键字不一定是单字符,不过肯定是有纯字母组成,而且都为大写字母,如:KEY,A,IMPORT
2.每个关键字后面的字符串长度是不固定的,如KEY....A..IMPORT.............................


QUOTE:
原帖由 feiyang21687 于 2007-10-6 13:29 发表



一边看WCG,一边等啊!^_^

1.关键字不一定是单字符,不过肯定是有纯字母组成,而且都为大写字母,如:KEY,A,IMPORT
2.每个关键字后面的字符串长度是不固定的,如KEY....A..IMPORT................. ...

关键字后面的字符串能包含大写字母吗?

若现有2个关键字A B, 输入字符串为AABB
那么应理解为
A => "", B => ""
还是
A => "A", B => "B"
还是
A => "AB", B => ""
还是
A => "ABB", B => ""

???
my $str="AXXXXBXXXXAYYYYY";
my @kword=qw(A BX);
my $patt=join("|",@kword);
$patt=qr/(?=($patt))/;
$str=~s/$patt/\n/g;
my @lines=split("\n",$str);
print join(":",splice(@lines,1));
$str是原始字符串
@kword是关键字的数组,我用的是关键字是A和BX,确保对多个字符的关键字有效
LZ的要求都没有表达清楚