我正在使用perl。
这是$ match_name:
的字符串|1015809840|ref|NG_009004.2|
|1015809841|ref|NG_009005.2|
我希望输出为:
1015809840
1015809841
我试试:
$match_name =~ s/(.*?|.*?)|.*//g;
删除所有字符。
答案 0 :(得分:1)
答案 1 :(得分:0)
看起来你有固定宽度的数据。您当然可以使用正则表达式来处理固定宽度的数据,但我更喜欢pack
和unpack
:
use strict;
use warnings 'all';
use 5.010;
while (<DATA>) {
my @fields = unpack 'x A10 x A3 x A11';
say $fields[0];
}
__DATA__
|1015809840|ref|NG_009004.2|
|1015809841|ref|NG_009005.2|
输出:
1015809840
1015809841
unpack
模板x A10 x A3 x A11
表示:
x
:跳过一个角色A10
:在第一个字段中读取10个字符x
:跳过一个角色A3
:在第二个字段中读取3个字符x
:跳过一个角色A11
:在第三个字段中读取11个字符 perlpacktut详细介绍了如何将pack
和unpack
与固定宽度数据结合使用。