加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-16 06:07:06 所属栏目:大数据 来源:网络整理
导读:我想根据多个字符长度拆分一行,并将它们存储在单独的变量中. 例如:$myString =“米奇24美国活着 这里前12个字符是用户名,接下来2个是年龄,接下来23个字符是国家,接下来7个是状态. 那么有没有办法保存它们使用split()或s ///单独存储它们? 谢谢, 解决方法
我想根据多个字符长度拆分一行,并将它们存储在单独的变量中.
例如:$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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读