我有以下字符串。实际上,尺寸可以变化。
my $string = "ACCAGGGGGGCCTCCGCAG*AAGCGGTCGCCATAGTCAAAC";
我想做的是从 * 标记的左边和右边提取10个字符,结果是:
my $output = "GCCTCCGCAG*AAGCGGTCGC";
在Perl中是否有一种简洁的方法来实现它?
ih99xse11#
这是一个非正则表达式的解决方案:
my $string = "ACCAGGGGGGCCTCCGCAG*AAGCGGTCGCCATAGTCAAAC"; my $marker = '*'; my $offset_from_marker = 10; my length = 21; my $output = substr($string, index($string, $marker) - offset_from_marker, $length);
5n0oy7gb2#
这里有一个使用正则表达式的快速简单的方法。两个{10}表示每边要匹配的字符数。
{10}
my ($output) = $string =~ m{(.{10}\*.{10})};
2条答案
按热度按时间ih99xse11#
这是一个非正则表达式的解决方案:
5n0oy7gb2#
这里有一个使用正则表达式的快速简单的方法。两个
{10}
表示每边要匹配的字符数。