在 Perl 中将字符串分割成等长的块
假设我的字符串长度是 3 的倍数。
my $seq = "CTTCGAATT"; # in this case length of 9
有没有办法可以将它分成等长的 3? 这样最后我就有了这个数组:
$VAR = ["CTT", "CGA", "ATT"];
Let's say I have string of length in multiple of 3.
my $seq = "CTTCGAATT"; # in this case length of 9
Is there a way I can split it into equal length of 3?
Such that in the end I have this array:
$VAR = ["CTT", "CGA", "ATT"];
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
迭代三的倍数,使用
substr
获取要push
到列表中的片段。Iterate over multiples of three, using
substr
to get pieces topush
into a list.my $str='ABCDEFGHIJKLM';
我们可以使用字符串匹配从字符串中获取部分,其中最小长度为 1,最大长度为所需长度,3 或 4 或其他
@parts = $str =~ /(.{1,4})/g;
我们得到@parts = ['ABCD', 'EFGH', 'IJKL', 'M']
my $str='ABCDEFGHIJKLM';
we can use string match to get parts from the string, where minimum length is 1 and maximum is the required length, 3 or 4 or whatever
@parts = $str =~ /(.{1,4})/g;
and we get@parts = ['ABCD', 'EFGH', 'IJKL', 'M']
看看如何在 Perl 中将字符串拆分为每个包含两个字符的块? 的解决方案,
尤其是
unpack
可能会很有趣:Take a look at the solution at How can I split a string into chunks of two characters each in Perl?
Especially the
unpack
might be interesting: