Perl-如何根据不同的字符长度分割一行

前端之家收集整理的这篇文章主要介绍了Perl-如何根据不同的字符长度分割一行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想根据多个字符长度拆分一行,并将它们存储在单独的变量中.
例如:$myString =“米奇24美国活着
这里前12个字符是用户名,接下来2个是年龄,接下来23个字符是国家,接下来7个是状态.
那么有没有办法保存它们使用split()或s ///单独存储它们?
谢谢,

解决方法

使用正则表达式匹配,或 substr

my $myString = "Mickey      24                    USA alive";

if ($myString =~ /(.{12})(.{2})(.{23})(.*)/) {
    $name = $1;
    $age = $2;
    $country = $3;
    $status = $4;

    print "<$name><$age><$country><$status>";

} else {
    warn "line not long enough"; 
}

输出

<Mickey      ><24><                    USA>< alive>

要在事后剥离变量间距,只需使用另一个正则表达式:

$value =~ s/^\s+|\s+$//g;

甚至可以使用以下方法在一行中完成:

s/^\s+|\s+$//g for ($name,$age,$country,$status);

猜你在找的Perl相关文章